我正在尝试设置WPF DataGrid的样式,以便当属性从上一行更改时,会有一个可视指示器。首先,改变前景色。但是,当我这样做时,我的多值转换器中的绑定被破坏了。这似乎很奇怪,因为绑定对列的内容工作得很好。因此,在下面的示例中,显示了位置值,但是多值转换器正在为传入的每个值接收DependencyProperty.Unset。是否有人对我做错了什么有任何想法?
<DataGridTextColumn Header="Location" Binding="{Binding Location}">
<DataGridTextColumn.Foreground>
<MultiBinding Converter="{StaticResource ResourceKey=valueEqualityToBrush}">
<Binding Path="Location" />
<Binding Path="Location" RelativeSource="{RelativeSource Mode=PreviousData}" />
</MultiBinding>
</DataGridTextColumn.Foreground>
</DataGridTextColumn>
谢谢, 格雷格
答案 0 :(得分:1)
您可能在“输出”窗口中出现此错误:
System.Windows.Data错误:36:无法找到用作RelativeSource的上一个元素,因为生成的上下文中没有父元素。
这显然意味着绑定无法找到兄弟姐妹,因为没有父母。我不知道是否有任何可行的解决办法......
答案 1 :(得分:1)
DataGridColumns不绑定到单元格内容以外的属性,因为它们不是元素树的一部分。这里有一个解决方法:http://blogs.infragistics.com/blogs/josh_smith/archive/2008/06/26/data-binding-the-isvisible-property-of-contextualtabgroup.aspx
只需使用DataContextSpy就可以了。