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

时间:2010-03-18 08:25:31

标签: 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>

1 个答案:

答案 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>