首页 文章

DataGrid MultiDataTrigger绑定到ViewModel属性

提问于
浏览
0

我在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 回答

  • 0
    <Condition Binding="{Binding Path=DataContext.IsAutorized,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" Value="True" />
    

    如果IsAutorized属性位于主ViewModel中,则此条件将起作用 .

相关问题