2010-09-28 124 views
0

我正在處理具有一些ListBox信息的應用程序,這些應用程序可能包含相當多的信息(可能包含多達6或700個複雜項目 - 多個文本字段和圖像)。WPF:當隱藏所有內容時隱藏ListBox組

我使用了ListBox控件爲了使用它的分組,排序和過濾功能,但事實證明過濾非常慢(並且UI的響應對於應用程序很重要)。

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項的工作非常快,甚至:

那麼,我現在是使用上述任何一種方法,而不是,我是通過改變ListBoxItem中的使用是這樣的知名度過濾在ListBox中。我現在有這樣的問題,即使我想要隱藏的單個項目現在已隱藏,但仍然可以看到所有組標題仍然可見,並且看不到任何隱藏它們的方法。

任何幫助隱藏小組(或甚至更好的方式來實現相同的事情)非常感謝。

謝謝

回答

0

創建一個列表框,其中包含作爲項目模板的標題和內部列表框。標題顯示組名稱和內部列表框中的分組項目。現在,您只需在外部列表框中隱藏一個項目,組標題及其項目就會消失。