如何基于多条件WPF更改datagridcell的背景?

How to change Background of datagridcell based on multiple condition WPF?

我有带有一些条件行的数据网格。我想如果我 select 数据网格中的特定行,selected 颜色将根据我的记录值而改变。 假设我有 StudentsIsDropOut 标记的记录。

然后如果我点击select学生记录,所选行将根据IsDropOut值改变颜色。如果它是 true,它将 selected 行背景设置为红色,如果 IsDropOutfalse,它将 selected 行背景设置为绿色。

也许这样

       <DataGrid.Resources>

                    <Style TargetType="{x:Type DataGridCell}">
                        <Style.Triggers>
                            <MultiDataTrigger>
                                <MultiDataTrigger.Conditions>
                                    <Condition Binding="{Binding Path=DataGridCell.IsSelected}" Value="True" />
                                    <Condition Binding="{Binding Path=IsDropOut}" Value="true" />
                                </MultiDataTrigger.Conditions>
                                <Setter Property="Background" Value="red" />
                            </MultiDataTrigger>

                        </Style.Triggers>
                    </Style>
                </DataGrid.Resources>

但是那个代码是行不通的。那怎么办呢?有人有建议吗?

试试这个:

          <Style TargetType="DataGridCell">
                <Style.Triggers>
                    <MultiTrigger>
                        <MultiTrigger.Conditions>
                            <Condition Property="IsSelected" Value="True" />
                            <Condition Property="IsDropOut" Value="true" />
                        </MultiTrigger.Conditions>
                        <Setter Property="Background" Value="Red" />
                    </MultiTrigger>
                </Style.Triggers>
            </Style>

我终于解决了这个问题..谢谢你的想法..

<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding Path=IsDropOut}" Value="True" />
        <Condition Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource Self}}" Value="True" />
    </MultiDataTrigger.Conditions>
    <Setter Property="Background" Value="Red" />
    <Setter Property="Foreground" Value="White" />
</MultiDataTrigger>