C# 为列表视图中的项目着色

C# 为列表视图中的项目着色,c#,wpf,listview,C#,Wpf,Listview,好的,因为我是WPF的新手,我可能会问一个简单的问题,但在过去的5个小时里,我一直在寻找解决方案,但什么也没有找到。 我有一个类,它包含一个bool值,指示ListView行是否应该着色。 我正在绑定其余列的值,但由于没有颜色列,我一直在尝试如何进行绑定 我尝试了Styles,尝试了DataTemplates(我花了一些时间来理解它们放在哪里,但我找到了答案)和一些带有C代码中函数的选项,我不知道如何调用 我知道我可能没有提供足够的信息或任何代码,但让我知道你需要什么来帮助我,我会发布它,对此我

好的,因为我是WPF的新手,我可能会问一个简单的问题,但在过去的5个小时里,我一直在寻找解决方案,但什么也没有找到。
我有一个类,它包含一个bool值,指示
ListView
行是否应该着色。
我正在绑定其余列的值,但由于没有颜色列,我一直在尝试如何进行绑定

我尝试了
Style
s,尝试了
DataTemplate
s(我花了一些时间来理解它们放在哪里,但我找到了答案)和一些带有C代码中函数的选项,我不知道如何调用

我知道我可能没有提供足够的信息或任何代码,但让我知道你需要什么来帮助我,我会发布它,对此我很抱歉,但我是新手,所以我甚至不知道你需要什么

这是我正在学习的课程:

        public class ReportRow
{
    public string ProductID { get; set; }
    public int SideA { get; set; }
    public int SideB { get; set; }
    public string Workers { get; set; }

    public bool Equality { get; set; }
}
所有内容都显示在
列表视图中
除了指示行是否应着色的bool之外

更新

这是我正在使用的
列表视图

            <ListView Height="118" HorizontalAlignment="Right" Name="ReportView" VerticalAlignment="Top" Width="390" HorizontalContentAlignment="Right" Grid.Row="1" ItemsSource="{Binding ReportRows}" >
        <ListView.View>
            <GridView>
                <GridView.Columns>
                    <GridViewColumn Header="Product" Width="60" DisplayMemberBinding="{Binding ProductID}" />
                    <GridViewColumn Header="SideA" Width="60" DisplayMemberBinding="{Binding SideA}"/>
                    <GridViewColumn Header="SideB" Width="60" DisplayMemberBinding="{Binding SideB}"/>
                    <GridViewColumn Header="Workers" DisplayMemberBinding="{Binding Workers}"/>
                </GridView.Columns>
            </GridView>
        </ListView.View>
    </ListView>


这就是我目前拥有的。

这里有一个项目链接,展示了我相信您正在寻找的内容:。您需要更改转换器代码的代码,因为您的属性是布尔值而不是整数,并更改与属性名称的绑定。

您好,请使用转换器进行尝试

    public class BoolToColorConverter : IValueConverter
{

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (value is bool && (bool)value)
            return new SolidColorBrush(Colors.Red);
        else
            return null;
    }

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

<Window.Resources>
    <conv:BoolToColorConverter x:Key="boolToColorConverter"/>
</Window.Resources>

 <GridViewColumn Header="Product" Width="60" DisplayMemberBinding="{Binding ProductID}" BackGround="{Binding Equality, Converter={StaticResource boolToColorConverter}}" />
公共类booltocorconverter:IValueConverter
{
公共对象转换(对象值、类型targetType、对象参数、System.Globalization.CultureInfo区域性)
{
if(值为bool&(bool)值)
返回新的SolidColorBrush(颜色为红色);
其他的
返回null;
}
公共对象转换回(对象值、类型targetType、对象参数、System.Globalization.CultureInfo区域性)
{
抛出新的NotImplementedException();
}
}

我希望这会给您一个想法。

您可以使用ItemContainerStyle属性为ListViewItems着色:

        <ListView.ItemContainerStyle>
            <Style TargetType="{x:Type ListViewItem}">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Path=Equality}" Value="true">
                        <Setter Property="Background" Value="ColorWhenTrue"/>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding Path=Equality}" Value="false">
                        <Setter Property="Background" Value="ColorWhenFalse"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </ListView.ItemContainerStyle>


请展示您正在使用的XAML,我如何看到它与我的类一起工作,而不是与该示例中的fruit类一起工作?它正在工作!谢谢,把它作为一个答案贴出来,这样我就可以为其他人接受了。谢谢!首先谢谢你,我已经看到了这个选项,但是我被代码缠住了。我不知道该把我在这个例子上坐了45分钟的东西放在哪里,但什么都不起作用。你对哪些部分感到困惑?转换器只是您添加到项目中的一个类。数据触发器样式代码可以放在单独的资源文件中。你下载了这个项目吗?