2010-01-22 83 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

相关问题