<local:DayOfTheWeekColumn
...
<local:DayOfTheWeekColumn.Header>
<TextBlock
Text="{Binding ...},
ToolTip="{Binding ...} />
</local:DayOfTheWeekColumn.Header>
</local:DayOfTheWeekColumn>
DayOfWeekColumn是DataGridTextColumn的子类。我可以很容易地获取标题并设置它的内容,现在我想在代码中设置工具提示,在上面的xaml中我就是这样做的。
干杯,
编辑=========
到目前为止,这是DayOfWeekColumn的代码。xaml中的TextBlock是头的可视化树的一部分,而不是我想保留在xaml中的东西。我想访问它的工具提示,虽然,在代码中,所以我可以设置那里。
我想在列标题上应该有一个Children属性,我可以访问它来查找TextBlock,但是还没有找到它。
public class DayOfTheWeekColumn : DataGridTextColumn
{
public static readonly DependencyProperty DowDateProperty = DependencyProperty.RegisterAttached(
"DowDate", typeof (DateTime), typeof (DayOfTheWeekColumn), new PropertyMetadata(OnDateChanged));
public DateTime DowDate
{
get { return (DateTime)GetValue(DowDateProperty); }
set { SetValue(DowDateProperty, value); }
}
private static void OnDateChanged(DependencyObject target, DependencyPropertyChangedEventArgs e) {
var col = (DataGridTextColumn) target;
var date = (DateTime) e.NewValue;
col.Header = date.ToString(Strings.ShortDayOfWeekFormat);
//col.Header.ToolTip = "If Only It Were so Easy!!" <==============
}
public DayOfTheWeekColumn() {
Width = 60;
CanUserReorder = false;
CanUserResize = false;
CanUserSort = false;
}
}