我正在尝试为我的 XamDataGrid 创建一个样式,以便我可以根据悬停的当前单元格确定要在工具提示中显示的值。
我正在尝试以下内容:
<Style x:Key="MyCVPStyle" TargetType="{x:Type igDP:CellValuePresenter}">
<Setter Property="ToolTip">
<Setter.Value>
<StackPanel>
<ListView ItemsSource="{Binding RelativeSource={...}, Path=Field, Converter={StaticResource MyFieldConverter}}">
...
样式的 DataContext 设置为 DataRecord。我遇到的问题是我不知道如何访问单元格值呈现器的实际字段。
我尝试将源设置为:
{Binding RelativeSource={RelativeSource AncestorType={x:Type igDP:CellValuePresenter}}, Path=Field
但失败并出现绑定错误:
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='Infragistics.Windows.DataPresenter.CellValuePresenter', AncestorLevel='1''. BindingExpression:Path=Field; DataItem=null; target element is 'ListView' (Name=''); target property is 'ItemsSource' (type 'IEnumerable')
如何访问/绑定到 CellValuePresenter.Field 以便我可以将该值传递给我的转换器?
作为参考,我有其他 CellValuePresenter 样式在我访问字段时可以正常工作。例如,这里的第二个绑定参数是 Field,通过引用 Self 来访问:
<Setter Property="BorderThickness">
<Setter.Value>
<MultiBinding Converter="{StaticResource BorderThicknessConverter}">
<MultiBinding.Bindings>
<Binding Path="DataItem" />
<Binding RelativeSource="{RelativeSource Self}" Path="Field" />
</MultiBinding.Bindings>
</MultiBinding>
</Setter.Value>
</Setter>