c# - 为 ListView 中的项目着色

标签 c# wpf listview

好的,因为我是 WPF 的新手,我可能会问一个简单的问题,但我已经搜索了过去 5 个小时的解决方案,但一无所获。
我有一个包含 bool 值的类,指示 ListView 行是否应该着色。
我绑定(bind)了其余列的值,但由于没有颜色列,我一直在想办法解决这个问题。

我试过Styles,试过DataTemplates(我花了一些时间才明白把它们放在哪里,但我想通了)和一些选项我不知道如何调用的 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; }
}

ListView 中显示的所有内容,除了应指示该行是否应着色的 bool 值。

更新

这是我正在使用的 ListView:

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

这是我目前拥有的。

最佳答案

您可以使用 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>

关于c# - 为 ListView 中的项目着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14158658/

相关文章:

c# - 如何在无边框窗体上创建模糊玻璃效果?

javascript - 如何在 angularjs 中将 SignalR 与多个 Controller 一起使用

c# - Blend 不调用 DesignTimeBootstrapper

C# BeginInvoke 问题

java - 在更多 Activity 中访问一段代码?

android - 用于 ListView 宽度的 wrap_content

c# - wpf-单击按钮时动态创建新文本框和文本 block 并将其添加到网格行

c# - 无法通过 TCP/IP 发送第二条消息

c# - WPF:将 ListView 与多个源绑定(bind)

Android列 '_id'不存在?