Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何根据条件更改ListBoxItem的颜色_C#_Wpf_Listbox_Listboxitem - Fatal编程技术网

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

C# 如何根据条件更改ListBoxItem的颜色,c#,wpf,listbox,listboxitem,C#,Wpf,Listbox,Listboxitem,我有一个学生对象,它有: private string name; private double feesOwed; 我还有一个ListBox,它将ItemSource设置为一个列表对象,其中填充了几个学生。我想让列表框显示作为其文本的名称,并有一个基于feesOwed的背景颜色。差不多 if(feesOwed>20) { if(feesOwed>100) { item.Background = "Red"; r

我有一个学生对象,它有:

private string name;
private double feesOwed;
我还有一个ListBox,它将ItemSource设置为一个列表对象,其中填充了几个学生。我想让列表框显示作为其文本的名称,并有一个基于feesOwed的背景颜色。差不多

if(feesOwed>20) 
{
     if(feesOwed>100)
     {
            item.Background = "Red";
            return;
     }
     item.Background = "Yellow";
     return;
}
我发现的所有关于这一点的例子大多只是讨论如何获得交替的行颜色。我知道这将需要数据绑定,但这个主题对我来说是相当新的,我不能让它动态工作

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


谢谢

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

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


您可以参考链接

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

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


您可以参考链接

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

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


您可以参考链接

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

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


你可以参考link

我没有时间做一个例子。您需要的是列表框的
ItemTemplate
。在这里,您可以使用转换器将项目的背景色绑定到项目的
feesOwed
,请参见
IValueConverter
。转换器根据
feesOwed
值返回颜色。看看这个例子:我没有时间做一个例子。您需要的是列表框的
ItemTemplate
。在这里,您可以使用转换器将项目的背景色绑定到项目的
feesOwed
,请参见
IValueConverter
。转换器根据
feesOwed
值返回颜色。看看这个例子:我没有时间做一个例子。您需要的是列表框的
ItemTemplate
。在这里,您可以使用转换器将项目的背景色绑定到项目的
feesOwed
,请参见
IValueConverter
。转换器根据
feesOwed
值返回颜色。看看这个例子:我没有时间做一个例子。您需要的是列表框的
ItemTemplate
。在这里,您可以使用转换器将项目的背景色绑定到项目的
feesOwed
,请参见
IValueConverter
。转换器根据
feesOwed
值返回颜色。请参见以下示例: