【问题标题】:How to change the background color of a ListView row?如何更改 ListView 行的背景颜色?
【发布时间】:2019-11-13 09:46:55
【问题描述】:
private void Button_Click(object sender, RoutedEventArgs e)
{
    using (var db = new mainEntities())
    {
        people = (from p in db.People select p).ToList();
    }
    foreach (Person p in People)
    {                
        listView.Items.Add(p);
    }            
}
<ListView x:Name="listView" Foreground="Black">            
    <ListView.View>
        <GridView x:Name="gridView">
            <GridViewColumn Header="name" DisplayMemberBinding="{Binding Name}"/>
            <GridViewColumn Header="Spec" DisplayMemberBinding="{Binding Career}"/>
        </GridView>
    </ListView.View>
</ListView>

我使用 ADO.Net 实体模型从我的数据库中创建 Person 对象模型,从数据库中创建 Person 对象列表,然后将该列表添加到 ListView 以使用绑定显示到列.我想根据Career 的值更改ListView 行的颜色。例如,如果Career=='Nurse',则将该行设置为红色。

我似乎遇到的问题是 Person 对象不是 ListViewItem 所以我不能设置 Background 属性。

【问题讨论】:

  • 我不确定我是否遵循您的代码。你有foreach (Person in People),然后是listView.Items.Add(r);。 r 是什么?
  • 我看不到您尝试设置 Background 属性的代码。你也可以补充一下吗?如果您遇到任何异常,请提供完整的异常详细信息。
  • 抱歉 r 应该是 p,应该是 'foreach (person p in people)' 我现在已经修好了
  • 顺便说一句,您不需要调用Dispose,这是由using 构造为您完成的。

标签: c# visual-studio entity-framework listview


【解决方案1】:

您可以在 ListView 中添加 DataTrigger。添加 DataTrigger 将检测绑定值并更改 ListViewItem 背景。

直接在 xaml 中设置 ListViewItem 的样式。请参阅以下代码示例:

  <ListView x:Name="listView" Foreground="Black" ItemsSource="{Binding}">
        <ListView.View>
            <GridView x:Name="gridView">
                <GridViewColumn Header="name" DisplayMemberBinding="{Binding Name}"/>
                <GridViewColumn Header="Spec" DisplayMemberBinding="{Binding Career}"/>
            </GridView>
        </ListView.View>
        <ListView.Resources>
            <Style TargetType="{x:Type ListViewItem}">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Career}"
                  Value="Nurse">
                        <Setter Property="Background"
              Value="Red" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </ListView.Resources>
    </ListView>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    • 2016-01-11
    • 2018-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多