如果单元格中的内容不消失,我似乎无法将工具提示绑定(bind)到 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 的内容在工具提示显示时消失?
最佳答案
您绑定(bind)到 Content
属性,它可以是很多东西,但主要是一些控件:TextBlock
用于文本,CheckBox
用于 bool 数据等。此控件已经是其他可视元素的子项,因此它们的消失可能是因为它们已从单元格中删除并添加到 ToolTip
。如果是这种情况,那么我猜它是在您的代码中的某处完成的,您必须处理它,但这不是一个好的解决方案。
或者,您可以向绑定(bind)添加一个转换器来解析 Content
并提取值,但该解决方案也不是很好。
处理此问题的更好方法是绑定(bind)到实际源,而不是它的视觉表示。如果您不自动创建列,则可以为每一列定义工具提示样式:
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}">
<DataGridTextColumn.CellStyle>
<Style>
<Setter Property="ToolTipService.ToolTip" Value="{Binding Name}" />
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
</DataGrid.Columns>
关于wpf - 显示工具提示时 DataGridCell 内容消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15115135/