Tooltip显示时,DataGridCell内容消失

时间:2013-02-27 14:53:42

标签: wpf

我似乎无法将ToolTip绑定到DataGridCell的内容,而不会让单元格中的内容消失。换句话说,当我将鼠标悬停在单元格上时,工具提示会按预期显示,但单元格内容不再可见(除非我向下滚动列表并备份)。贝娄是我遇到麻烦的WPF:

<DataGrid.CellStyle>
    <Style TargetType="DataGridCell">
        <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Content, Mode=OneWay}"> 
        </Setter>
    </Style>
</DataGrid.CellStyle>

如何在工具提示显示时停止DataGridCell的内容消失?

1 个答案:

答案 0 :(得分:2)

你绑定到Content属性,这可能是很多东西,但主要是它有一些控制:TextBlock用于文本,CheckBox用于bool数据,依此类推。此控件已经是其他可视元素的子元素,因此它们的消失可能是因为它们已从单元格中删除并添加到ToolTip。如果是这种情况,那么它在你的代码中的某处做了我猜你必须处理这个,但这不是一个好的解决方案。

或者,您可以将一个转换器添加到将解析Content并提取值的绑定中,但该解决方案也不是那么好。

更好的方法是绑定到实际的源,而不是它的视觉表示。如果您不自动创建列,则可以为每列定义工具提示样式:

 <DataGrid.Columns>
      <DataGridTextColumn Binding="{Binding Name}">
          <DataGridTextColumn.CellStyle>
              <Style>
                  <Setter Property="ToolTipService.ToolTip" Value="{Binding Name}" />
              </Style>
           </DataGridTextColumn.CellStyle>
       </DataGridTextColumn>
 </DataGrid.Columns>