没有什么比用自己的方式回答一个老问题更好的了……
我受到@Scroog1 的回答的启发,但似乎有点多余,Tooltip
它只是模仿那里的内容。您通常需要 ,Tooltip
因为您已经缩写了列标题文本。
我创建了一个AttachedProperty
我Tooltip
在GridViewColumn
. 我再到bind
此从我Style
为我GridViewColumnHeader
。
现在我只定义Style
一次,然后添加它以及AttachedProperty
我想在哪里使用它。
Xaml
<Style x:Key="GridViewColumnHeaderStyle" TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="ToolTip" Value="{Binding Path=Column.(attachedProperties:GridViewColumnHeaderToolTipAttachedProperty.Tooltip), RelativeSource={RelativeSource Self}}" />
</Style>
<GridView x:Key="GridViewFuelConsumption"
x:Shared="False">
<GridViewColumn Header="Ред.Број"
DisplayMemberBinding="{Binding RedenBroj}"
HeaderContainerStyle="{StaticResource GridViewColumnHeaderStyle}"
attachedProperties:GridViewColumnHeaderToolTipAttachedProperty.Tooltip="Your explanation" />
</GridView>
附加属性
public sealed class GridViewColumnHeaderToolTipAttachedProperty : DependencyObject
{
public static readonly DependencyProperty TooltipSourceProperty = DependencyProperty.RegisterAttached(
"Tooltip",
typeof(string),
typeof(GridViewColumnHeaderToolTipAttachedProperty),
new PropertyMetadata("null"));
public static void SetTooltip(DependencyObject element, string value)
{
element.SetValue(TooltipSourceProperty, value);
}
public static string GetTooltip(DependencyObject element)
{
return (string)element.GetValue(TooltipSourceProperty);
}
}