我在MVVM WPF项目中有一个View . 我在页面中有一个DataGrid绑定到DataView(来自DataTable) . 我需要的是使用MultiDataTrigger作为DataGrid行的背景颜色,应该由ViewModel属性的True值重新定义:
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>
Binding问题非常令人困惑,我试过google但却一无所获 . 任何想法都很热吗?
谢谢 .
- 编辑:
“IsNotSpecific”和“IsSelected”都是DataView中的Colmns,它来自DataTable,一个强类型DataSet表 .
选择行时,字段/列“IsSelected”设置为true,并触发某种颜色 . 当View属性“IsAutorized”设置为true并且DataRow(来自DataTable)“IsNotSpecific”列设置为“True”时,应显示不同的颜色 .
1 回答
如果IsAutorized属性位于主ViewModel中,则此条件将起作用 .