2011-11-01 36 views
0

我試圖使用CollectionViewSource顯示一些數據,和所有的例子/教程我已經看到有內置的自定義類,他們在另一個類,它的ObservableCollection繼承使用。我是新來的使用CollectionViewSource,這只是我的第三個MVVM的實現,所以我可能會誤解編程模式,但我的問題是: 我在哪裏可以放置ObservableCollection類和/或自定義類?使用MVVM與CollectionViewSource

我覺得他們應該在模型去,但當時我不知道什麼被綁定到視圖。我只是將它們構建爲外部類,然後在Model/ViewModel中引用它們?

任何幫助表示讚賞

回答

5

首先,我要說的是,沒有必要,除非你添加功能的它,我有很少,如果有的話,實際上需要做的,從ObservableCollection<T>繼承。

在大多數情況下創建ObservableCollection<T>類型的視圖模型屬性,然後從模型填充它們每當我加載數據。這具有示範不需要使用ObservableCollection<T>優勢(它可以是任何IEnumerable<T>),它意味着後來當我(幾乎必然)想換什麼我是從模型特定實例另一個找回視圖模型我只是有義務改變我現有的視圖模型類。

一旦你有你的視圖模型的屬性,你可以簡單地綁定你CollectionViewSource到該屬性,它會從那裏做的一切。值得注意的是,CollectionViewSource實際上並不關心屬性的類型,因此您可以將您的收藏集作爲ICollection<T>,IEnumerable<T>或(我相信)作爲objectCollectionViewSource仍將它們視爲相同好像它是作爲ObservableCollection<T>公開的。

對不起,我稍微散漫的回答。簡潔的版本將「取決於情況」,但我傾向於在大多數情況下遵循這種一般方法。

+0

謝謝,這涵蓋了我想知道的一切。 – SeanVDH

相關問題