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

时间:2014-10-17 07:18:14

标签: c# wpf listbox listboxitem

我有一个Student对象,其中包含:

private string name;
private double feesOwed;

我还有一个ListBox,它将ItemSource设置为一个由多个学生填充的List对象。我想让ListBox显示名称作为Text,并根据feesOwed设置背景颜色。像

这样的东西
if(feesOwed>20) 
{
     if(feesOwed>100)
     {
            item.Background = "Red";
            return;
     }
     item.Background = "Yellow";
     return;
}

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

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

由于

1 个答案:

答案 0 :(得分:1)

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

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

您可以参考this链接