2010-01-22 55 views
2

根據MSDN,您可以傳遞IEnumerable的ObservableCollection構造函數的重載。根據非常短的MSDN頁面,這將成爲Ienumerable的「副本」。ObservableCollection(IEnumerable)構造函數的行爲

我如何確定這將如何表現? 「複製」是完全獨立於原始的,還是會對Ienumerable(比如通過linq查詢)所做的更改自動反映到ObservableCollection中?

MSDN Page

回答

4

此構造遍歷在IEnumerable的項目,並增加了每個人的ObservableCollection。一旦完成,新的ObservableCollectionIEnumerable沒有任何關係(除非如果您正在處理參考類型集合,那麼ObservableCollection將保存對由IEnumerable提供的相同對象的引用)。

+0

這就解釋了爲什麼事情對我來說很奇怪,我的Ienumerable是Linq查詢的結果。我期待有一個查詢結果的「平坦」集合,但是我得到的對象是_Employee1 = {System.Data.Linq.EntityRef } 我假設由於ObserveableCollection沒有實現IQueryable,他們不能被引用。現在我看到您可以擁有兩個包含相同引用但實現不同接口的集合?你可以查詢IQueryable和綁定到ObservableCollection來獲得兩全其美的好處? – 2010-01-23 04:00:55

相關問題