Hello.
I want add ToolTip on GridViewHeaderCell, column created in code as
column = new GridViewDataColumn
{
ColumnGroupName = args.ColumnDef.ColumnGroupName,
DataMemberBinding = new Binding(args.ColumnDef.Member)
{
Mode = BindingMode.TwoWay,
UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged,
},
IsReadOnlyBinding = new Binding(args.ColumnDef.IsReadOnlyMember)
{
Converter = new NullToBooleanConverter {IsInverted = true}
},
Header = args.ColumnDef.Header,
HeaderCellStyle = TryFindResource("DataHeaderCellStyle") != null ? (Style)Resources["DataHeaderCellStyle"] : new Style(typeof(GridViewHeaderCell)),
IsVisible = true,
IsFilterable = false,
};
if (args.ColumnDef.ToolTip != null)
column.ToolTip = new ToolTip { Content = args.ColumnDef.ToolTip };
in xaml i added style
<Style x:Key="DataHeaderCellStyle" BasedOn="{StaticResource GridViewHeaderCellStyle}" TargetType="telerik:GridViewHeaderCell">
<!--<Setter Property="ToolTipService.ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=Content.Column.ToolTipText, Mode=OneWay}" />-->
<Setter Property="ToolTip" Value="{Binding Content, RelativeSource={RelativeSource Self}}"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="FontSize" Value="12"/>
</Style>
If use <Setter Property="ToolTipService.ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=Content.Column.ToolTipText, Mode=OneWay}" /> or <Setter Property="ToolTipService.ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=Content.ToolTipText, Mode=OneWay}" /> this is don't work, no tooltip.
If use <Setter Property="ToolTip" Value="{Binding Content, RelativeSource={RelativeSource Self}}"/> (seen here https://www.telerik.com/forums/tooltip-on-column-title) content of GridViewHeaderCell will be lost (on attachement).
How need set tooltip in style property?
If add event subscribe (as here https://www.telerik.com/forums/radgridview---tooltip-for-dynamically-created-column), will work...
ctor
{
InitializeComponent();
EventManager.RegisterClassHandler(typeof(GridViewHeaderCell), GridViewHeaderCell.MouseEnterEvent, new RoutedEventHandler(OnMouseEnterEvent));
}
private void OnMouseEnterEvent(object sender, RoutedEventArgs e)
{
if (sender is GridViewHeaderCell cell && cell.Column.ToolTip != null)
{
cell.ToolTip = cell.Column.ToolTip;
}
}