XAML Datagrid 设置 rowStyle 如果值大于

XAML Datagrid set rowStyle if Value greater than

我有一个包含 3 列的数据网格。

现在我想有条件地更改行的突出显示。 比如:如果第 2 列中的值大于 XX,则将行颜色更改为红色。

我已经尝试过,但没有成功:

<DataGrid Name="DataGrid1" Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="3" AlternatingRowBackground="LightGray"  ItemsSource="{Binding}" AutoGenerateColumns="False" FontSize="18" CanUserResizeColumns="False" CanUserReorderColumns="False" CanUserSortColumns="False" CanUserAddRows="False">
        <DataGrid.RowStyle>
            <Style TargetType="DataGridRow">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Steckzyklen}" Value="&lt; 20">
                        <Setter Property="Background" Value="#FFFF4848"></Setter>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </DataGrid.RowStyle>
        <DataGrid.Columns>
            <DataGridTextColumn Header="Steckplatz"  Binding="{Binding Name}" Width="200"/>
            <DataGridTextColumn Header="Steckzyklen"  Binding="{Binding Steckzyklen}" Width="200"/>
            <DataGridTextColumn Header="Austauschdatum"  Binding="{Binding Austauschdatum}" Width="200"/>
        </DataGrid.Columns>
    </DataGrid>

在这一行中:DataTrigger Binding="{Binding Steckzyklen}" Value="< 20" 我尝试用 < 来做,但没有成功。

有人知道如何让它工作吗?最好只更改 XAML.

中的内容

提前致谢!

您可以按如下方式更改样式:

创建一个新的转换器:

    public class IsEqualOrLessThanConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            int intValue = (int)value;
            int compareToValue = Int32.Parse(parameter.ToString() ?? string.Empty);

            return intValue <= compareToValue;
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }

然后:

<Style TargetType="DataGridRow">
    <Style.Triggers>
        <DataTrigger Binding="{Binding Steckzyklen, Converter={StaticResource IsEqualOrLessThanConverter}, ConverterParameter=20}" Value="True">    
            <Setter Property="Foreground" Value="#FFFF4848"/>
            <Setter Property="Background" Value="Yellow"/>
        </DataTrigger>
    </Style.Triggers>
</Style>