4

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

4 回答 4

8

要在其中ToolTip显示,DataGridColumnHeader您需要将它的ToolTip属性绑定到它ToolTip的属性,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>
于 2011-01-29T12:41:59.040 回答
4

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

<DataGridTemplateColumn Header="Test" Width="70" SortMemberPath="TestText">
    ...
</DataGridTemplateColumn>
于 2011-01-29T04:37:56.460 回答
1

以前的答案大多是正确的,但是我发现它们过于复杂或仅解决了帖子的两个问题之一。

首先,您始终可以将SortPath属性设置为保持对 a 的排序DataGridTemplateColumn,或者可能在您想要对显示的属性以外的某些属性进行排序时。

其次,您不需要DataGridTemplateColumn像 OP 提到的那样在列标题上有一个工具提示。如果您想向实际单元格添加工具提示,您可以使用模板列(但这可能也不需要)。在任何情况下,将 ToolTip 添加到列标题最容易通过 HeaderStyle

<DataGridTextColumn Header="Test" Binding="{Binding TestText}">
    <DataGridTextColumn.HeaderStyle>
        <Style TargetType="DataGridColumnHeader">
            <Setter Property="ToolTip" Value="Test ToolTip" />
        </Style>
    </DataGridTextColumn.HeaderStyle>
</DataGridTextColumn>
于 2014-01-17T22:14:09.777 回答
0

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

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

也看看这个例子

于 2011-01-28T22:09:02.093 回答