我似乎无法将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的内容消失?
答案 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>