DataGrid MultiDataTrigger绑定到ViewModel属性
我在MVVM WPF项目中有一个View。我有一个页面中的DataGrid绑定到DataView(从DataTable)。我需要的是用MultiDataTrigger为DataGrid行的背景颜色,应该由视图模型属性的真值进行重新定义:DataGrid MultiDataTrigger绑定到ViewModel属性
public bool IsAutorized
{
get { return _isAutorized; }
set
{
_isAutorized = value;
OnNotifyPropertyChanged("IsAutorized");
}
}
而True值是DataRow中的一个属性。这就是我现在拥有的,并且绑定到ViewModel属性是不正确的,当我在属性上设置一个断点时,它不会被“捕获”。
<Style.Triggers>
<Trigger Property="DataGridRow.IsSelected" Value="True">
<Setter Property="Background" Value="#CCDAFF"/>
</Trigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=IsAutorized,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Page}}" Value="True" />
<Condition Binding="{Binding RelativeSource={RelativeSource Self},Path=IsNotSpecific}" Value="True" />
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="#CCF4FF" />
</MultiDataTrigger> </Style.Triggers>
绑定问题非常混乱,我试过googleing它,但什么都没发现。任何想法很难做到这一点?
谢谢。
- 编辑:
“IsNotSpecific” 和 “IsSelected” 都是Colmns的数据视图,即从数据表中,一个强类型DataSet的表中获取。
当选中某行时,字段/列“IsSelected”设置为true,并触发某种颜色。当View属性“IsAutorized”设置为true并且DataRow(来自DataTable)“IsNotSpecific”列设置为“True”时,应该显示不同的颜色。
<Condition Binding="{Binding Path=DataContext.IsAutorized,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" Value="True" />
如果IsAutorized属性位于Main ViewModel中,则此条件将有效。
谢谢,我会测试它 –
对不起,无法正常工作。 “IsAutorized”没有正确绑定并且未被调用。 –
哪个viewmodel具有DataGrid的“IsAutorized”属性和ItemsSource? – ParameterX
你为什么写这个RelativeSource? IsAutorized显然不是Page的财产。 – Clemens
@Clemens IsAutorized是ViewModel的一个属性。我只是尝试一切,因为我不知道会发挥什么作用。我如何到达VM属性? –
请增加更多信息。 –