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
使用绑定显示到列。我想基于ListView
的值更改Career
行的颜色。例如,如果Career=='Nurse'
,则将该行设置为红色。
我似乎遇到的问题是Person
对象不是ListViewItem
,因此我无法设置Background
属性。
答案 0 :(得分:0)
您可以在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>