我有兩個ObservableCollections,比如ObservableCollection<Cat>
和ObservableCollections<Dog>
。貓和狗都來自班級寵物。我想顯示所有寵物的列表。我該怎麼做呢?我更喜歡不想通過添加來自兩個源列表中的項目來創建新的ObservableCollection<Pet>
,因爲隨着更多Cats和Dogs添加到源列表中,此列表將變得陳舊。我可以想到兩種方法:如何在WPF中將兩個ObservableCollections顯示爲單個列表?
1)創建一個「裝飾器」ObservableCollection
,它將兩個源集合保持爲成員並每次迭代它們。
2)創建一個ObservableCollection<Pet>
,它具有兩個源集合的組合元素,但也依賴於源集合。因此,如果將Cat添加到Cat集合中,則會通知此集合,並將新的Cat添加到其自身。
有沒有解決這個問題的標準方法?我不想重新發明輪子!
非常好!正是我在找什麼。謝謝。 – Naresh 2010-06-18 13:49:48
好吧,我一直在努力使CompositeCollection現在工作幾個小時,但不能讓它工作。我將其指定爲的ItemSource到我的組合框像這樣(貓是我的ViewModel一個ObservableCollection): CompositeCollection> 但我得到此錯誤: 找不到管理目標元素的FrameworkElement或FrameworkContentElement。 BindingExpression:路徑=貓;的DataItem = NULL; 如果我完全刪除CompositeCollection並直接綁定到ObservableCollection,那麼一切正常。任何線索? –
Naresh
2010-06-19 03:00:24
這裏的答案顯示瞭如何綁定來自XAML的CompositeCollection:http://stackoverflow.com/questions/6446699/how-do-you-bind-a-collectioncontainer-to-a-collection-in-a-view-model – Govert 2013-01-18 16:36:03