Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

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属性禁用行并更改颜色 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

嗨,我有一个foo列表,我想将它们全部添加到我的WPF项目的listview中。 如果我的foo无效,我想禁用选择他的选项,但可以选择其他foo。 我还想让用户清楚这个选项这个foo是无效的,可能会把文本变成红色或者其他什么。
我该怎么做?即使是非常基本的东西,也没有在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>