WPF DataGridTextColumn工具提示

时间:2011-01-28 22:02:26

标签: wpf wpf-controls wpfdatagrid datagridcolumn

有没有办法将工具提示添加到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>

该列失去了排序功能..帮助!

4 个答案:

答案 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的工具提示?

Have a look at this example too

答案 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>