对于一个集合数据对象而言,在前面的使用过程当中,有时需要对数据源进行排序、过滤、集合等操作,尽管对于这些操作可以在初始数据元数据的时候就可以操作【诸如QLinq或者底层Sql语句】,但是实际上凡是继承了IEnumerable接口的数据源集合对象,其实在绑定的过程中,会有一个能够实现上述功能的视图生成并存在。
第一部分、ICollectionView
ICollectionView的对象,可以通过CollectionViewSource.GetDefaultView方法获得:
A、CollectionViewSource类可以看成视图和数据源集合的中介者,分别通过View和Source属性进行保存;
B、可以将集合视图视为位于绑定源集合之上的一个层,您可以通过它使用排序、筛选和分组查询来导航和显示集合,所有这些操作都无需操作基础源集合本身。
C、如果源集合实现了 INotifyCollectionChanged 接口,则 CollectionChanged 事件引发的更改将传播到视图;
D、由于视图不会更改基础源集合,因此每个源集合可以有多个关联的视图。
1、窗体后台代码如下:
2、XAML的代码如下:
对于分组的而言,有的时候分组的对象格式不一定是字符串,做一这里需要一个转换器,继承IValueConverter的自定义类