我有一個包含10,000個項目的數據庫,您可以在應用程序運行時將其添加和刪除。對分頁列表框中的集合進行排序和過濾
我有一個ListBox顯示最多100個項目,並支持分頁。
您可以對10,000個項目進行過濾和排序,這些項目需要立即反映在列表框中。
我有一個按鈕,隨機選擇一個項目,只要它通過過濾器。
什麼是用於此類操作的最佳集合/視圖集合?
到目前爲止,我的第一步是創建數據庫中所有項目的ObservableCollection
,我們將其稱爲MainOC
。
然後通過解析MainOC
創建一個與過濾器匹配的所有項目的List
,我們將其稱爲FilteredList
。
然後根據上面的List
創建一個ListCollectionView
,它包含前100個項目。
缺點:
- 你有充分的應用排序操作的時間來重新創建
ListCollectionView
。 - 您必須在每次翻頁時重新創建
ListCollectionView
。 - 每次更換過濾器時都必須重新創建
ListCollectionView
。 - 每次將物品添加或刪除至
MainOC
時,您都必須重新創建ListCollectionView
。
有沒有更好的方法,我失蹤了?
例如,我看到您可以將濾鏡應用到ListCollectionView
。我應該使用全部10,000種物品填充我的ListCollectionView
嗎?但是,如何限制我的ListBox
顯示的項目數?
我應該直接對數據庫進行過濾和排序嗎?我可以直接從數據庫建立FilteredList
,並基於此創建我的ListCollectionView
,但這仍然具有上面列出的所有缺點。
尋找你可以提供的任何輸入!
無法解析符號ObserveOnDispatcher – Julien
從安裝的NuGet RX-XAML和包括命名空間System.Reactive.Linq –
試圖建立一個超級簡單例。 https://gist.github.com/julesx/acd0e1c03f9d90bd6094。 僅當我直接添加到OC時,沒有任何內容會顯示在緩存中。我缺少一些基本的東西? – Julien