2013-05-22 78 views
0

我有一個相當大量的數據,綁定ListViews,DataGrids與CollectionView,並使用OnFilter事件過濾CollectionView。新增Reactive Extensions(Rx),嘗試在另一個線程中運行CollectionView.Refresh()。怎麼樣?

因此加載了的CollectionView數據以及當字符串屬性FilterString變化,它呼籲二傳手CollectionView.Refresh(),行動鎖定了屏幕時間過長時,所以我嘗試使用不同的線程來加載數據和過濾數據,但作爲的CollectionView不支持不同的線程,程序崩潰。

有人可以給我一些指導如何使RX工作爲此目的?

培訓視頻或帶有示例代碼的文章將不勝感激。

非常感謝。

回答

0

簡短的回答是,你不能。你需要在UI線程上調用CollectionView.Refresh()。 Rx不會改變這一點。

但是,您可能可以使用ReactiveUI中的ReactiveCollection,而不是使用CollectionView進行過濾。這需要更多的工作,但是如果你熱衷於使用Rx,那麼這可能是最好的方法。

+0

感謝您的評論...和苛刻的消息。那麼你有什麼建議來過濾數據集嗎?我只能想到保留一個基本數據集,並綁定到一個視圖目的數據集,每次需要過濾時清除和添加實體。在這種情況下,我應該可以使用RX將動作置於後臺線程中。 –

相關問題