2012-09-16 72 views
1

我創建了一個具有實時過濾和排序功能的應用程序(當文本框中的文本發生更改時,該列表會動態更改)。我使用了一個綁定到ObservableCollection的列表框,然後到一個List。它適用於小數據,但是當我使用1000個項目時失敗。在大數據上綁定失敗

我使用了 QuickSort用於過濾項目的排序和可見性屬性。我猜想這是最好的性能的原因。

首先我試着用ObservableCollection綁定到一個ListBox。當我快速輸入文本時,它會引發異常(檢測到佈局週期)。

比我嘗試與List作爲ItemsSource。排序/過濾完成後,我解僱了NotifyPropertyChanged(「MyList」)。沒有例外,但是當文件管理員短語導致只有一個幾個可見的項目。它加載非常緩慢。

我最終做了一些我不喜歡的事情,因爲它看起來非常業餘。

Data.ApplyFiltersSorting(); 
ItemsListBox.ItemsSource = Data.MyItems.Where(a => a.Visibility == Visibility.Visible); 

哪個實際工作速度快,不會導致錯誤。

有人可以告訴我在我以前的嘗試中可能會出現什麼錯誤,以及這樣做的正確方法是什麼?

回答