为DataGrid或CollectionView添加已排序的事件

时间:2013-08-29 14:02:02

标签: c# .net wpf datagrid

我在ViewModel中使用ListCollectionView来表示我的数据。我正在使用SortDescriptions的{​​{1}}进行数据库查询。我想通知ViewModel在排序发生变化时重新加载数据。

目前我正在使用ListCollectionView

的CollectionChanged事件
ListCollectionView.SortDescriptions

但是当我对多列进行排序时,每列都会调用它,并且会多次开始加载。

是否有可能向(EnitityView.SortDescriptions as INotifyCollectionChanged).CollectionChanged += (sender, args) => { Task.Run(() => ReloadSort()); }; ListCollectionView添加类似Sorted事件的内容(如果可能的话,可以使用附加行为,我不喜欢这样的小控制继承事情)? DataGrid的排序事件不适用于我的目的,因为DataGrid在调用时尚未更新。

1 个答案:

答案 0 :(得分:0)

我认为你在这里的意思是你需要在添加排序描述符后对你的集合进行排序。如果您要从代码中添加描述符,那么我认为您可以在将所有这些描述符添加到一起后调用ReloadSort()。您可能需要稍后为Refresh()调用ListCollectionView