3

如果单元格中的内容消失,我似乎无法将工具提示绑定到 DataGridCell 的内容。换句话说,当我将鼠标悬停在单元格上时,工具提示会按预期显示,但单元格内容不再可见(永久不可见,除非我向下滚动列表并向上滚动)。Bellow是我遇到问题的WPF:

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

当 ToolTip 显示时,我可以做些什么来阻止 DataGridCell 的内容消失?

4

1 回答 1

2

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

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

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

 <DataGrid.Columns>
      <DataGridTextColumn Binding="{Binding Name}">
          <DataGridTextColumn.CellStyle>
              <Style>
                  <Setter Property="ToolTipService.ToolTip" Value="{Binding Name}" />
              </Style>
           </DataGridTextColumn.CellStyle>
       </DataGridTextColumn>
 </DataGrid.Columns>
于 2013-02-27T16:23:32.523 回答