WPF DataGridTextColumn工具提示

WPF DataGridTextColumn工具提示,wpf,wpf-controls,wpfdatagrid,datagridcolumn,Wpf,Wpf Controls,Wpfdatagrid,Datagridcolumn,有没有一种方法可以将工具提示添加到DataGridColumn标题中,并且仍然保留排序功能。下面的代码不起作用(它不显示工具提示) 当我使用下面的代码时 <toolkit:DataGridTemplateColumn Header="Test" Width="70"> <toolkit:DataGridTemplateColumn.CellTemplate> <DataTemplat

有没有一种方法可以将工具提示添加到DataGridColumn标题中,并且仍然保留排序功能。下面的代码不起作用(它不显示工具提示)


当我使用下面的代码时

<toolkit:DataGridTemplateColumn Header="Test" Width="70">  
              <toolkit:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding TestText}" ToolTip="{Binding TestText}"  />
                        </DataTemplate>
                    </toolkit:DataGridTemplateColumn.CellTemplate>
                </toolkit:DataGridTemplateColumn>


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

您正在将工具提示添加到列模板中,而不是添加到标题中

是否尝试将DataGridColumn上的HeaderStyle属性设置为包含包含HeaderCell工具提示的模板的样式


当网格创建自动列时,它知道该列中显示哪个字段。当您自己创建列时,数据网格不知道您将在该列中显示哪些数据,因此它无法猜测按哪个字段对列进行排序。 要使自己定义的列可排序,请将
SortMemberPath
属性添加到
DataGridTemplateColumn
中,如下所示:

<DataGridTemplateColumn Header="Test" Width="70" SortMemberPath="TestText">
    ...
</DataGridTemplateColumn>

...

要在
DataGridColumnHeader
中显示
工具提示
,需要将其
工具提示
属性绑定到其
DataGridColumn
工具提示
,如下所示

<toolkit:DataGridTextColumn Header="Test"
                            Width="70"
                            Binding="{Binding TestText}"
                            ToolTipService.ToolTip="My Tooltip Text">
    <toolkit:DataGridTextColumn.HeaderStyle>
        <Style TargetType="toolkit:DataGridColumnHeader">
            <Setter Property="ToolTip"
                    Value="{Binding RelativeSource={RelativeSource Self},
                                    Path=Column.(ToolTipService.ToolTip)}"/>
        </Style>
    </toolkit:DataGridTextColumn.HeaderStyle>
</toolkit:DataGridTextColumn>

前面的答案基本上是正确的,但是我发现它们过于复杂,或者只解决了这篇文章中两个问题中的一个

首先,您可以始终设置
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>


我更新了我的问题。我想要列标题下方显示的所有记录的工具提示。不知怎的,上面的代码不起作用了。@developer:你看过我答案中的例子了吗?我还是不明白你想要什么效果。从您的问题:“将工具提示添加到DataGridColumn标题”中,您希望当鼠标悬停在列标题上或当鼠标悬停在网格主体中的数据项上时显示工具提示吗?可能与绑定到列属性的工具提示示例重复+我为此付出了代价!
<DataGridTextColumn Header="Test" Binding="{Binding TestText}">
    <DataGridTextColumn.HeaderStyle>
        <Style TargetType="DataGridColumnHeader">
            <Setter Property="ToolTip" Value="Test ToolTip" />
        </Style>
    </DataGridTextColumn.HeaderStyle>
</DataGridTextColumn>