WPF - DataGrid Column的ToolTip可见性基于列的数据长度

1 wpf datagrid tooltip

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

Tab*_*ool 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>
Run Code Online (Sandbox Code Playgroud)