有没有办法将ItemsControl
(如ListView
或DataGrid
)绑定到已排序的集合,以便:
ItemsControl
会自动反映新的排序顺序ItemsControl
进行排序,它就会对集合进行重新排序吗?谢谢你,
本
答案 0 :(得分:0)
尝试在bining上定义这两个属性: IsSynchronizedWithCurrentItem =真 BindsDirectlyToSource =真
我没有尝试过,但可能会有效..
答案 1 :(得分:0)
将您的项目放入ObservableCollection然后绑定到ObservableCollection应该可以解决问题。在ObservableCollection上完成的任何排序都应“转换”到UI层。
答案 2 :(得分:0)
您需要使用
CollectionViewSource.GetDefaultView()
获取ObservableCollection的默认视图并对其应用排序的方法。
例如,下面我按BookTitle排序名为'authors'的ObservableCollection。
ObservableCollection<Author> authors = new ObservableCollection<Author>();
authors = PopulateCollection();
// Sort by BookTitle
System.ComponentModel.ICollectionView colView;
colView = CollectionViewSource.GetDefaultView(authors);
colView.SortDescriptions.Add(new System.ComponentModel.SortDescription("BookTitle", ListSortDirection.Descending));