WPF DataGridTextColumn工具提示

问题描述:

有没有办法将工具提示添加到DataGridColumn标题并仍保留排序功能。下面的代码不工作(它不显示工具提示)WPF DataGridTextColumn工具提示

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

代码列失去排序functionality..Help!

+0

你要当鼠标悬停在列标题或工具提示出现时,它悬停在数据项在体内的网格? – 2011-01-28 23:42:44

+0

可能的重复[如何添加一个工具提示到DataGridTextColumn](http://*.com/questions/1164288/how-do-i-add-a-tooltip-to-a-datagridtextcolumn) – Jay 2015-12-16 01:37:05

当电网创建自动柱,它知道哪些场正被显示在该列中。当您自己创建列时,数据网格不知道您将在该列中显示哪些数据,因此无法猜测按列排序哪个字段。 为了让你自己定义排序的列时,SortMemberPath属性添加到您的DataGridTemplateColumn这样的:

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

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

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

Have a look at this example too

+0

我更新了我的题。我希望工具提示显示列中标题下的所有记录。不知何故上述代码不起作用.. – developer 2011-01-28 22:42:36

+0

@developer:你看我的答案中的例子吗?我仍然不明白你想要的效果是什么。从您的问题:“添加工具提示到DataGridColumn标题” – 2011-01-29 07:24:18

为了让ToolTipDataGridColumnHeader显示你需要的ToolTip属性绑定为它的ToolTipDataGridColumn这样

<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的排序,或者可能在您想对除显示内容之外的某个属性进行排序时,您可以始终设置SortPath属性。

其次,您不需要DataGridTemplateColumn以在列标题上有一个工具提示,就像操作提及的那样。如果您想向实际单元格添加工具提示,则可以使用模板列(但这可能也不需要)。在任何情况下,添加一个工具提示栏标题是最容易被HeaderStyle完成

<DataGridTextColumn Header="Test" Binding="{Binding TestText}"> 
    <DataGridTextColumn.HeaderStyle> 
     <Style TargetType="DataGridColumnHeader"> 
      <Setter Property="ToolTip" Value="Test ToolTip" /> 
     </Style> 
    </DataGridTextColumn.HeaderStyle> 
</DataGridTextColumn>