将DataGridCell前景颜色绑定到ViewModel Brush属性

时间:2015-10-08 18:57:09

标签: wpf xaml prism

我有一个样式触发器,如下所示。

<Style TargetType="DataGridCell" x:Key="ValidMatch">
    <Style.Triggers>
        <DataTrigger Binding="{Binding IsValidMatch}" Value="False">
            <Setter Property="Foreground" Value="Red" />
            <Setter Property="FontWeight" Value="Bold"/>
        </DataTrigger>
    </Style.Triggers>
</Style>

风格很好。但是当任何datagrid单元格的颜色变为Red时,我想将颜色绑定到viewmodel中的System.Windows.Media.Brush BrushProperty并说出类似

的内容
if(Colors.Red.Equal(BrushProperty)) then do something.

问题是我有像

这样的setter属性
<Setter Property="Foreground" 
        Value="{Binding BrushProperty, Mode=OneWayToSource, NotifyOnTargetUpdated=True"}/> 

包含在DataGridCellStyle中,它不会在UI中将前景色应用于红色,也绝不会将颜色绑定到ViewModel。 ViewModel实现了BindableBase。如何将datagridcell颜色绑定到viewmodel中的属性并进行一些比较。请帮忙。

1 个答案:

答案 0 :(得分:1)

尝试这样做,

<Style.Triggers>
   <DataTrigger Binding="{Binding IsValidMatch}" Value="False">
        <Setter Property="Foreground" Value="{Binding BrushProperty, Mode=TwoWay}" />
   </DataTrigger>
</Style.Triggers>

BrushProperty

设置ViewModel