XAML for Converter
<ToolTip x:Key="toolTipGridCell" DataContext="{Binding Path=PlacementTarget,
RelativeSource={x:Static RelativeSource.Self}}"
Visibility="{Binding Path=PlacementTarget,
RelativeSource={x:Static RelativeSource.Self},
Converter={StaticResource ContentFitsVisibilityConverter}}">
<TextBlock FontWeight="Bold" Text="{Binding Path=Content.Text}"/>
</ToolTip>
....
<DataGrid ....>
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="ToolTip" Value="{StaticResource toolTipGridCell}" />
</Style>
</DataGrid.CellStyle>
我需要隐藏或显示单元格上的工具提示,根据单元格的宽度,该单元格的内容是否完全可见。
当我删除工具提示的可见性部分时,我得到了包含单元格内容的工具提示 - 因此目标似乎是正确的。
但是,如上所述定义了可见性,当我将鼠标悬停在单元格上时,当转换函数被命中时,第一个参数(对象值)为null,而不是显示工具提示的DataGrid.Cell。 / p>
答案 0 :(得分:1)
在您提供的示例代码中,datacontext和Tooltip控件的可见性都绑定到相同的属性&#34; PlacementTarget&#34;。这导致了NullReferenceException。要解决此问题,请将datacontext和可见性绑定到viewmodel中的相应属性。