C# 如何更改ListView行的背景色? private void按钮\u单击(对象发送者,路由目标) { 使用(var db=new mainEntities()) { people=(从数据库中的p.people选择p.ToList(); } foreach(人员中的人员p) { listView.Items.Add(p); } }
我使用ADO.Net实体模型从数据库创建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
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
,它由使用构造为您完成。