有没有办法将工具提示添加到DataGridColumn标头并仍然保留排序功能。下面的代码不起作用(它不显示工具提示)
<toolkit:DataGridTextColumn Header="Test" Width="70" Binding="{Binding TestText}" ToolTipService.ToolTip="{Binding TestText}">
当我使用下面的代码时
<toolkit:DataGridTemplateColumn Header="Test" Width="70">
<toolkit:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding TestText}" ToolTip="{Binding TestText}" />
</DataTemplate>
</toolkit:DataGridTemplateColumn.CellTemplate>
</toolkit:DataGridTemplateColumn>
该列失去了排序功能..帮助!
答案 0 :(得分:8)
要让ToolTip
显示在DataGridColumnHeader
中,您需要将ToolTip
属性绑定到其ToolTip
的{{1}}此
DataGridColumn
答案 1 :(得分:4)
当网格创建自动列时,它知道该列中显示的字段。当您自己创建列时,数据网格不知道您将在该列中显示哪些数据,因此无法猜测要对列进行排序的字段。
要创建一个您自己可以排序的列,请将SortMemberPath
属性添加到DataGridTemplateColumn
,如下所示:
<DataGridTemplateColumn Header="Test" Width="70" SortMemberPath="TestText">
...
</DataGridTemplateColumn>
答案 2 :(得分:0)
您正在向列模板添加工具提示,而不是标题。
您是否尝试将DataGridColumn上的HeaderStyle属性设置为包含模板的样式,该模板包含HeaderCell的工具提示?
答案 3 :(得分:0)
以前的答案大多是正确的,但是我发现它们过于复杂或只解决了该帖子的两个问题中的一个。
首先,您始终可以设置SortPath
属性以维护DataGridTemplateColumn
的排序,或者可能需要对除显示内容以外的某些属性进行排序。
其次,您不需要DataGridTemplateColumn
就可以在列标题上使用工具提示,就像OP提到的那样。如果要向实际单元格添加工具提示,可以使用模板列(但这可能也不需要)。无论如何,HeaderStyle
<DataGridTextColumn Header="Test" Binding="{Binding TestText}">
<DataGridTextColumn.HeaderStyle>
<Style TargetType="DataGridColumnHeader">
<Setter Property="ToolTip" Value="Test ToolTip" />
</Style>
</DataGridTextColumn.HeaderStyle>
</DataGridTextColumn>