应该一绑定DataGrid
to the
ICollectionView = CollectionViewSource.GetDefaultView(collection)
或到
ObservableCollection<T> collection;
???
MVVM 的最佳实践是什么?为什么?
You always绑定到一个ICollectionView
,无论你是否明确表示。
假设我们有
var collection = new ObservableCollection<string>();
var collectionView = CollectionViewSource.GetDefaultView(collection);
在这种情况下,绑定到collection
or to collectionView
是一回事:绑定引擎将绑定到默认集合视图(引用等于collectionView
)如果你告诉它绑定到collection
.
这意味着您问题的答案是“绝对没有区别”。
需要完全明确的是:即使您直接绑定到集合,绑定引擎也会绑定到默认视图。修改视图的属性(例如排序条件)将影响看起来直接绑定到集合的绑定,因为在幕后它是绑定到默认视图的。
然而,还有另一个有趣且相关的问题:应该绑定到默认集合视图(即绑定到集合本身,因为没有理由显式绑定到默认视图)还是绑定到同一集合的另一个视图?
考虑到每个视图都有自己的当前项目、排序标准等概念,因此如果您打算对同一集合进行多个绑定,并且绑定控件需要具有不同的当前项目、过滤器和公司概念,那么您想要的是显式绑定到同一底层集合的多个视图。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)