在我的应用程序中,我尝试使用转换器基于dataGrid列的文本长度实现工具提示的可见性。我在显示toolTip文本时遇到一些问题。
在工具提示中,TextBlock的文本绑定不起作用。如果它与一些硬编码字符串绑定,它可以正常工作。
以下是我为网格列添加的代码...
<Custom:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Text}">
<TextBlock.ToolTip>
<ToolTip
DataContext="{Binding Path=PlacementTarget, RelativeSource={x:Static RelativeSource.Self}}"
Visibility="{Binding Converter={StaticResource ToolTipVis}}">
<TextBlock Text="{Binding Text}">
</ToolTip>
</TextBlock.ToolTip>
</TextBlock>
</DataTemplate>
</Custom:DataGridTemplateColumn.CellTemplate>
答案 0 :(得分:5)
ToolTip的DataContext设置为System.Windows.Controls.TextBlock,因为您已将其定义为RelativeSource.Self。
如果丢失了ToolTip DataContext,则应该能够绑定到Text属性。
您可能需要更改转换器绑定以反映这一点,但我不确定,因为我没有测试过这个......
<ToolTip
Visibility="{Binding Path=PlacementTarget,
RelativeSource={x:Static RelativeSource.Self},
Converter={StaticResource ToolTipVis}}">>
<TextBlock Text="{Binding Path=Text}"/>
</ToolTip>