如果值大于或等于,则更改单元格的背景颜色

Changing background colour of cells if value is greater than or equal to

我有这个 DataGrid,我一直在尝试设置所选单元格的背景颜色:

<DataGridTextColumn Header="Next Study" Binding="{Binding NextStudy}">
    <DataGridTextColumn.ElementStyle>
        <Style TargetType="{x:Type TextBlock}">
            <Style.Triggers>
                <Trigger Property="Text" Value="25">
                    <Setter Property="Background" Value="Red"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </DataGridTextColumn.ElementStyle>
    <DataGridTextColumn.CellStyle>
        <Style TargetType="{x:Type DataGridCell}">
            <Setter Property="ToolTip" Value="{Binding NextStudyDescription}" />
        </Style>
    </DataGridTextColumn.CellStyle>
</DataGridTextColumn>

正如您所见:

但这并不是我真正想要的。相反,我想突出显示值大于或等于 18 的所有单元格。所以我尝试了:

<DataGridTextColumn Header="Next Study" Binding="{Binding NextStudy}">
    <DataGridTextColumn.ElementStyle>
        <Style TargetType="{x:Type TextBlock}">
            <Style.Triggers>
                <DataTrigger Binding="{NextStudy Converter={StaticResource IsEqualOrGreaterThanConverter}, ConverterParameter=18}" Value="True">
                    <Setter Property="Background" Value="Red"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGridTextColumn.ElementStyle>
    <DataGridTextColumn.CellStyle>
        <Style TargetType="{x:Type DataGridCell}">
            <Setter Property="ToolTip" Value="{Binding NextStudyDescription}" />
        </Style>
    </DataGridTextColumn.CellStyle>
</DataGridTextColumn>

不喜欢:<DataTrigger Binding="{NextStudy

此外,如果元素comboActiveStudentAssignmentType选择的索引是0、1或2,我想做这个背景测试。否则不需要做这个高亮。

谢谢。

您有一个语法错误:Binding 是 属性 名称,您仍然必须将其声明为 Binding

<DataTrigger Binding="{Binding NextStudy, Converter={StaticResource IsEqualOrGreaterThanConverter}, ConverterParameter=18}" Value="True">

至于第二部分的问题,可以用MultiDataTrigger。 MultiDataTrigger 中的条件必须全部为真,触发器才能执行设置器。您可能需要编写另一个转换器来将您的 AssignmentType 转换为 True/False 并且您应该被设置。 这是一个简单的例子:

<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding NextStudy, Converter={StaticResource IsEqualOrGreaterThanConverter}, ConverterParameter=18}" Value="True"/>
        <Condition Binding="{Binding comboActiveStudentAssignmentType, Converter={StaticResource YourOtherConverter}" Value="True"/>
    </MultiDataTrigger.Conditions>
    <MultiDataTrigger.Setters>
        <Setter Property="Background" Value="Red"/>
    </MultiDataTrigger.Setters>
</MultiDataTrigger>