在我的应用程序中,我试图通过使用转换器基于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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)