WPF:隐藏所有内容时隐藏列表框组

WPF:隐藏所有内容时隐藏列表框组,wpf,listbox,listboxitem,Wpf,Listbox,Listboxitem,我正在开发一个包含一些列表框信息的应用程序,这些列表框可能包含相当多的信息(可能多达6个或700个复杂项目-多个文本字段和图像) 我使用ListBox控件是为了使用它提供的分组、排序和过滤功能,但结果表明过滤速度非常慢(UI的响应性对应用程序很重要) 因此,我现在使用的不是上述任何一种方法,而是通过以下方式更改ListBoxItem的可见性进行过滤: foreach (MyItemType item in myListBox.ItemsSource) {

我正在开发一个包含一些列表框信息的应用程序,这些列表框可能包含相当多的信息(可能多达6个或700个复杂项目-多个文本字段和图像)

我使用ListBox控件是为了使用它提供的分组、排序和过滤功能,但结果表明过滤速度非常慢(UI的响应性对应用程序很重要)

因此,我现在使用的不是上述任何一种方法,而是通过以下方式更改ListBoxItem的可见性进行过滤:

foreach (MyItemType item in myListBox.ItemsSource)
            {
                ListBoxItem lbi = (ListBoxItem)(myListBox.ItemContainerGenerator.ContainerFromItem(item));

                if (item.Name.Contains("blah"))
                {
                    lbi.Visibility = Visibility.Visible;
                    lbi.IsEnabled = true;
                }
                else
                {
                    lbi.Visibility = Visibility.Collapsed;
                    lbi.IsEnabled = false;
                }
            }
即使列表框中有500多个项目,这项功能也能很快发挥作用。我现在的问题是,虽然我想要隐藏的单个项目现在被隐藏,但这使得所有的组标题仍然可见,并且我看不到任何隐藏它们的方法

我们非常感谢任何帮助隐藏团体(甚至是实现同样目标的更好方法)


谢谢

创建一个列表框,其中包含一个标题和一个内部列表框作为项目模板。标题显示分组项目的组名和内部列表框。现在,您只需在外部列表框中隐藏一个项目,组标题及其项目就会消失