【问题标题】:Add a sorted event for DataGrid or CollectionView为 DataGrid 或 CollectionView 添加排序事件
【发布时间】:2013-08-29 14:02:01
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: c# .net wpf datagrid


    【解决方案1】:

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

    【讨论】:

    • 当您单击 DataGrid 的列标题时,排序描述是从 gui 添加的,因此我无法影响它们添加到集合中的方式
    猜你喜欢
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    • 2013-11-19
    相关资源
    最近更新 更多