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

本文关键字:排序 事件 添加 DataGrid CollectionView | 更新日期: 2023-09-27 18:29:34

我在ViewModel中使用ListCollectionView来表示我的数据。我正在使用ListCollectionViewSortDescriptions进行数据库查询。我想通知ViewModel在排序发生更改时重新加载数据。

目前我正在使用ListCollectionView.SortDescriptions:的CollectionChanged事件

(EnitityView.SortDescriptions as INotifyCollectionChanged).CollectionChanged +=
    (sender, args) =>
        {
            Task.Run(() => ReloadSort());
        };

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

是否有可能在ListCollectionViewDataGrid中添加类似Sorted事件的内容(如果可能的话,可以添加类似附加行为的内容,我不喜欢这种小事的控制继承)?DataGrid的排序事件不适用于我的目的,因为SortDescriptions在调用时还没有更新。

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

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