ItemsControl - 将控件和支持集合的排序顺序绑定在一起

时间:2010-07-07 20:30:59

标签: wpf data-binding sorting collections itemscontrol

有没有办法将ItemsControl(如ListViewDataGrid)绑定到已排序的集合,以便:

  • 每当通过代码使用集合时,ItemsControl会自动反映新的排序顺序
  • AND只要对ItemsControl进行排序,它就会对集合进行重新排序吗?

谢谢你,

3 个答案:

答案 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));
相关问题