它返回一个不是 ListCollectionView 的 ICollectionView。您很可能希望在视图之上有一个视图以获取 ListCollectionView 所具有的功能。而且由于 ICollectionView 实现了 CollectionChanged,因此您不会想要使用 BindingListCollectionView。
DataView view = (myListView.ItemsSource as DataTable).DefaultView;
ListCollectionView coll = new ListCollectionView(CollectionViewSource.GetDefaultView(view));
虽然替代方案是:
DataView view = (myListView.ItemsSource as DataTable).DefaultView;
BindingListCollectionView coll = new BindingListCollectionView(view);
如果你只想要一个视图。
如果您直接绑定到 WPF 控件,最好直接绑定到它而不创建 BindingListCollectionView/ListCollectionView,因为 DefaultView 已经允许对 DataTable 进行排序。
Binding binding = new Binding() { Source = (myListView.ItemsSource as DataTable) };
this.myListView.SetBinding(myListView.ItemsSourceProperty, binding);
DataView view = (myListView.ItemsSource as DataTable).DefaultView;
view.Sort = "Age";
希望有帮助,
塔姆斯·J·罗伊斯