C# 设置ListViewItem的可见性

C# 设置ListViewItem的可见性,c#,wpf,listview,C#,Wpf,Listview,设置特定ListViewItem的可见性时出现问题 foreach (Oseba item in osebe_listView.Items) { if (o == item) { object ob = (object)osebe_listView.Items[count

设置特定ListViewItem的可见性时出现问题

 foreach (Oseba item in osebe_listView.Items)
                        {

                            if (o == item)
                            {
                                object ob = (object)osebe_listView.Items[count];
                                ListViewItem lvi = (ListViewItem)ob;
                                lvi.Visibility = Visibility.Collapsed;

                                count++;
                            }
                        }

我想要的是找到与类型“Oseba”中的对象相等的ListView项,并将其可见性设置为“折叠”。

我不知道这些项是如何绑定到列表框的,因此这是一个冒险,但我认为您不希望这样:

foreach (ListViewItem item in osebe_listView.Items)
{
  if ((item.DataContext as Oseba) != null)
  {
      item.Visibility = Visibility.Collapsed;
  }
}

但也许你应该看看过滤器

您可以使用ItemContainerGenerator.ContainerFromItem方法获取对数据项的可视容器的引用,前提是该容器已实际创建:

foreach (var item in osebe_listView.Items)
{
    if (o == item)
    {
        ListViewItem lvi = osebe_listView.ItemContainerGenerator.ContainerFromItem(item) as ListViewItem;
        if(lvi != null)
            lvi.Visibility = Visibility.Collapsed;
        count++;
    }
}

请描述你的问题。你的问题是什么?你的代码没有编译吗?是否存在运行时错误?这段代码不是您想要实现的吗?这段代码可以编译,但不起作用,因为对象有一个空值。我不知道如何获取listviewitem类型的对象,因此我可以将其设置为Collapsedt以简单地说:我希望找到一个特定的listviewitem,它与对象类型Oseba具有相同的值(Oseba正在填充listView)Oseba如何填充listView?通过ItemsSource?显示如何填充ListView。您不必以注释的形式回答这些问题,只需编辑您的问题来改进它。这如何匹配这两个对象?我正在使用以下xaml语法填充项:DisplayMemberBinding=“{Binding priimek}”。在代码隐藏中,我只使用add和clear,尽管我可以使用绑定:/What's your ItemSource?只需显示视图和视图模型,或者显示填充ListView的代码