简体   繁体   English

设置ListViewItem的可见性

[英]Setting visibility to ListViewItem

I have issues setting visibility to a specific ListViewItem. 我在设置对特定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++;
                            }
                        }

What I want is to find the ListView item that is equal to a object from type "Oseba" and set it's visibility to collapsed. 我想要的是找到与类型“ Oseba”中的对象相等的ListView项,并将其可见性设置为折叠。

I don't know exactly how the items are bound to your list box, so this is a shot into the dark, but i think you wan't something like this: 我不知道这些项目是如何绑定到您的列表框的,所以这是一个黑暗的镜头,但是我想您不会这样:

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

But maybe you should take a look at Filters. 但是也许您应该看看过滤器。 WPF Filter a ListBox WPF筛选列表框

You could use the ItemContainerGenerator.ContainerFromItem method to get a reference to the visual container for a data item provided that the container has actually been created: 您可以使用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++;
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM