Search code examples
c#wpftelerik-grid

Telerik WPF GridView header text disappears when content is bound to tooltip


I am following Telerik guide for displaying a tooltip on WPF GridView column headers. The task is to create a tooltip which would have same text as column header.

In generic.xml there is this style:

<Style TargetType="telerik:GridViewHeaderCell">
     <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=Content}" />
</Style>

This does work and shows a tooltip when mouse is hovered over column header, however the actual header is being cleared.

enter image description here

I wonder why this is happening and how to fix it? GridViewHeaderCell inherits from ContentControl.


Solution

  • I ended up adding a converter because "Content" value appeared to be a TextBlock:

    public class TooltipObject : IValueConverter
        {
            public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
            {
                if (value != null)
                {
                    return ((TextBlock)value).Text;
                }
    
                return value;
            }
    
            public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
            {
                return value;
            }
        }
    

    and the style looks like:

    <utils:TooltipObject x:Key="tooltip" />
    

    ...

    <Style TargetType="telerik:GridViewHeaderCell">
                <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=Content, Mode=TwoWay, Converter={StaticResource tooltip}}" />
            </Style>