C# 更改组合框中某些行的背景色

C# 更改组合框中某些行的背景色,c#,wpf,C#,Wpf,我有一个绑定的组合框,根据我在记录中得到的值,我想更改组合框中某些行的背景色。这可能吗?如果可能,如何实现 再澄清一下。我正在查看每行中的一个字段,并根据其值更改背景颜色。所以我可以改变所有的行,一些行,或者没有一行 谢谢使用ItemContainerStyle设置每行的项目背景色。您可以绑定到行的数据上下文中的属性,并使用IValueConverter获取适当的笔刷。例如,假设项目具有属性“Y”: 为包含绑定到显示值的文本块的项目创建模板 创建自定义IValueConverter,将其他值转换

我有一个绑定的组合框,根据我在记录中得到的值,我想更改组合框中某些行的背景色。这可能吗?如果可能,如何实现

再澄清一下。我正在查看每行中的一个字段,并根据其值更改背景颜色。所以我可以改变所有的行,一些行,或者没有一行


谢谢

使用
ItemContainerStyle
设置每行的项目背景色。您可以绑定到行的数据上下文中的属性,并使用
IValueConverter
获取适当的笔刷。例如,假设项目具有属性“Y”:


为包含绑定到显示值的文本块的项目创建模板

创建自定义IValueConverter,将其他值转换为颜色


将背景绑定到其他值并使用转换器。

到目前为止您尝试了什么?没有什么,因为我只找到了更改所有背景颜色或所选项目背景颜色的方法。我还没有看到改变某些行背景颜色的例子。也许这就是你要找的。干杯,马丁,我不知道我想用组合框做什么。我将有X个记录,对于每一个记录,我想查看该行中的字段Y。如果Y为false,则将背景设置为特定颜色,否则保留默认颜色。因此,是否要基于单元格值设置背景?我将接受这个答案,但我必须对转换器做一个更改才能使其工作:return(值为bool?==true)?新SolidColorBrush(颜色.白色):新SolidColorBrush(颜色.浅灰色);
<ComboBox>
    <ComboBox.Resources>
        <local:BoolToBrushConverter x:Key="BoolToBrushConverter" />
    </ComboBox.Resources>
    <ComboBox.ItemContainerStyle>
        <Style TargetType="ComboBoxItem">
            <Setter Property="Background" 
                    Value="{Binding Y,Converter={StaticResource BoolToBrushConverter}}" />
        </Style>
    </ComboBox.ItemContainerStyle>
</ComboBox>
public class BoolToBrushConverter: IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return (value as bool? == true) ? Brushes.Green : Brushes.Red;
    }

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