C# 如何更改ListView行的背景色? private void按钮\u单击(对象发送者,路由目标) { 使用(var db=new mainEntities()) { people=(从数据库中的p.people选择p.ToList(); } foreach(人员中的人员p) { listView.Items.Add(p); } }

C# 如何更改ListView行的背景色? private void按钮\u单击(对象发送者,路由目标) { 使用(var db=new mainEntities()) { people=(从数据库中的p.people选择p.ToList(); } foreach(人员中的人员p) { listView.Items.Add(p); } },c#,visual-studio,entity-framework,listview,C#,Visual Studio,Entity Framework,Listview,我使用ADO.Net实体模型从数据库创建Person对象模型,从数据库创建Person对象列表,然后将该列表添加到ListView以使用绑定显示到列。我想根据Career的值更改ListView行的颜色。例如,如果Career==“护士”,则将行设置为红色 我似乎遇到的问题是Person对象不是ListViewItem,因此我无法设置Background属性。您可以在ListView中添加数据触发器。添加DataTrigger将检测绑定值并更改ListViewItem背景 直接在xaml中设置L

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


我似乎遇到的问题是
Person
对象不是
ListViewItem
,因此我无法设置
Background
属性。

您可以在ListView中添加数据触发器。添加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>


我不确定是否遵循了您的代码。您有
foreach(Person-in-People)
,但随后有
listView.Items.Add(r)。什么是
r
?我看不到您试图设置
Background
属性的代码。你能再加一点吗?另外,如果遇到任何异常,请包括完整的异常详细信息。抱歉,r应该是p,应该是“foreach(person p in people)”我现在已经修复了它。顺便说一句,您不需要调用
Dispose
,它由
使用
构造为您完成。