Я хотел бы сделать эквивалент следующего xaml в коде, но я не знаю, как получить этот элемент текстового блока:
<local:DayOfTheWeekColumn
...
<local:DayOfTheWeekColumn.Header>
<TextBlock
Text="{Binding ...},
ToolTip="{Binding ...} />
</local:DayOfTheWeekColumn.Header>
</local:DayOfTheWeekColumn>
DayOfTheWeekColumn является подклассом DataGridTextColumn.Я могу достаточно легко добраться до заголовка и установить его содержимое, и теперь я хочу установить всплывающую подсказку в коде, чтобы понять, как это сделать, как я это делаю в xaml выше.
Cheers,
Berryl
РЕДАКТИРОВАТЬ =========
Здесь приведен код DayOfTheWeekColumn.TextBlock в xaml является частью визуального дерева заголовка, а не тем, что я хочу сохранить в 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;
}
}