如何根据条件更改ListBoxItem的颜色

本文关键字:ListBoxItem 颜色 何根 条件 | 更新日期: 2023-09-27 18:27:00

我有一个Student对象,它有:

private string name;
private double feesOwed;

我还有一个ListBox,它将把ItemSource设置为一个由几个Students填充的List对象。我想让ListBox将名称显示为其文本,并根据feesWed为背景着色。类似的东西

if(feesOwed>20) 
{
     if(feesOwed>100)
     {
            item.Background = "Red";
            return;
     }
     item.Background = "Yellow";
     return;
}

我发现的所有关于这方面的例子大多只是关于如何获得交替的行颜色。我知道这将需要数据绑定,但这个主题对我来说是相当新的,我不能让它动态地工作。

我认为正确的方法是实现IValueConverter,但这也有点令人生畏。

感谢

如何根据条件更改ListBoxItem的颜色

您可以使用如下所示的数据触发器

     <Style TargetType="ListBoxItem">
        <Style.Triggers>
            <DataTrigger Binding="{Binding feesOwed}" Value="20">
                <Setter Property="Background" Value="Yellow"></Setter>
            </DataTrigger>
            <DataTrigger Binding="{Binding feesOwed}" Value="100">
                <Setter Property="Background" Value="Red"></Setter>
            </DataTrigger>
        </Style.Triggers>
    </Style>

你可以参考这个链接