是否应该将DataGrid
绑定到
ICollectionView = CollectionViewSource.GetDefaultView(collection)
或发送到
ObservableCollection<T> collection;
???
MVVM的最佳实践是什么?为什么?
是否应该将DataGrid
绑定到
ICollectionView = CollectionViewSource.GetDefaultView(collection)
或发送到
ObservableCollection<T> collection;
???
MVVM的最佳实践是什么?为什么?
你always绑定到ICollectionView
,无论你是否明确.
假设我们有
var collection = new ObservableCollection<string>();
var collectionView = CollectionViewSource.GetDefaultView(collection);
在本例中,绑定到collection
或绑定到collectionView
是相同的:如果您告诉绑定引擎绑定到collection
,则绑定引擎将绑定到默认集合视图(引用等于collectionView
).
This means that the answer to your question is "it makes absolutely no difference".
需要明确的是:即使直接绑定到集合,绑定引擎也会绑定到默认视图.修改视图的属性(如排序条件)将影响似乎直接绑定到集合的绑定,因为在封面后面它是到默认视图的绑定.
然而,还有另一个有趣且相关的问题:应该绑定到默认集合视图(即,绑定到集合本身,因为没有理由显式绑定到默认视图)还是绑定到同一集合的另一个视图?
考虑到每个视图都有其自己的当前项概念、排序标准等,因此如果您打算将多个绑定到同一集合,并且绑定控件需要具有不同的当前项、筛选器和公司概念,那么您需要显式绑定到同一基础集合的多个视图.