我有一个样式触发器,如下所示。
<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中的属性并进行一些比较。请帮忙。
答案 0 :(得分:1)
尝试这样做,
<Style.Triggers>
<DataTrigger Binding="{Binding IsValidMatch}" Value="False">
<Setter Property="Foreground" Value="{Binding BrushProperty, Mode=TwoWay}" />
</DataTrigger>
</Style.Triggers>
从BrushProperty
ViewModel