首页 文章

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

提问于
浏览
0

我有一个样式触发器如下 .

<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>

风格很好 . 但是当任何数据网格单元格的颜色变为红色时,我想将颜色绑定到视图模型中的 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 回答

  • 1

    尝试这样做,

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

    ViewModel 设置 BrushProperty

相关问题