WPF ListView属性禁用行并更改颜色 List myFoos=new List() { new Foo(){Name=“one”,IsValid=true}, new Foo(){Name=“Two”,IsValid=false}, new Foo(){Name=“Three”,IsValid=true} }; lvFoos.Items.Add(myFoos);
嗨,我有一个foo列表,我想将它们全部添加到我的WPF项目的listview中。 如果我的foo无效,我想禁用选择他的选项,但可以选择其他foo。 我还想让用户清楚这个选项这个foo是无效的,可能会把文本变成红色或者其他什么。WPF ListView属性禁用行并更改颜色 List myFoos=new List() { new Foo(){Name=“one”,IsValid=true}, new Foo(){Name=“Two”,IsValid=false}, new Foo(){Name=“Three”,IsValid=true} }; lvFoos.Items.Add(myFoos);,wpf,listview,Wpf,Listview,嗨,我有一个foo列表,我想将它们全部添加到我的WPF项目的listview中。 如果我的foo无效,我想禁用选择他的选项,但可以选择其他foo。 我还想让用户清楚这个选项这个foo是无效的,可能会把文本变成红色或者其他什么。 我该怎么做?即使是非常基本的东西,也没有在web上找到简单的说明。您可以创建一个样式,该样式以ListBoxItem为目标,并将其分配给ListView.ItemContainerStyle属性。使用触发器根据条件更改外观: <ListView x:Name="lv
我该怎么做?即使是非常基本的东西,也没有在web上找到简单的说明。您可以创建一个
样式
,该样式以ListBoxItem
为目标,并将其分配给ListView.ItemContainerStyle
属性。使用触发器根据条件更改外观:
<ListView x:Name="lvFoos" SelectionChanged="ListView_SelectionChanged">
<ListView.View >
<GridView>
<GridViewColumn/>
</GridView>
</ListView.View>
</ListView>
默认情况下,禁用的项目(或一般控件)显示为灰色,不可选择/点击测试可见。所以已经有了视觉反馈。如果要将禁用项目的颜色从灰色更改为红色,则必须覆盖默认的ListBoxItem.Template
。如果要更改项目的高光颜色或背景,也可以使用此选项
List<Foo> myFoos = new List<Foo>()
{
new Foo() { Name = "one", IsValid = true },
new Foo() { Name = "Two", IsValid = false },
new Foo() { Name = "Three", IsValid = true }
};
lvFoos.Items.Add(myFoos);
<ListView x:Name="lvFoos" SelectionChanged="ListView_SelectionChanged">
<ListView.View >
<GridView>
<GridViewColumn/>
</GridView>
</ListView.View>
</ListView>
<ListView>
<ListView.View>
<GridView>
<GridViewColumn Header="Name"
DisplayMemberBinding="{Binding Name}"/>
</GridView>
</ListView.View>
<ListView.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Style.Triggers>
<DataTrigger Binding="{Binding IsValid}"
Value="False">
<Setter Property="IsEnabled"
Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
</ListView>