gpt4 book ai didi

wpf - 我需要 CollectionViewSource 排序/实时排序说明

转载 作者:行者123 更新时间:2023-12-03 09:09:05 25 4
gpt4 key购买 nike

我一直在搜索这个问题,但找不到任何可以真正为我解决问题的东西。

SortDescription 集合和 LiveSortingProperties 之间的交互是什么?

LiveSorting 是否依赖 SortDescriptions 的存在来确定 ASC/DESC 顺序?实时排序属性只是关于要监视哪些属性更改的规范吗?

如果我想更改排序基础,是否需要清除 SortDescription 集合,然后添加新集合并“刷新” View ?

您是否需要 LiveSorting 来处理对底层 ObservableCollection 的添加/删除,或者只是为了防止集合中已有对象的某些属性发生变化?

最佳答案

What is the interaction between the SortDescription collection and the LiveSortingProperties?

LiveSortingProperties 来自 CollectionViewSource 并监听您的项目(必须实现 INotifyPropertyChanged)以了解特定属性的更改;如果它们发生更改, View 会自动更新。添加 LiveSortingProperties 后还应设置 IsLiveSortingRequested = true,这一点很重要,这样它将设置所需的所有内容(监听器)。 LiveSortingProperties 独立于 SortDescriptionsSortDescriptions 执行排序,LiveSortingProperties 更新更改 View 。

有一点很高兴知道:排序是由 ICollectionView 完成的实时更新由 ICollectionViewLiveShaping 完成。 CollectionViewSource只是一个调用方法/更改接口(interface)属性的代理。 ListCollectionViewICollectionViewICollectionViewLiveShaping 的默认实现。

Does LiveSorting rely on the existence of SortDescriptions to determine ASC/DESC order? Are the live sorting properties just a specification on which properties to watch for changes?

正如您所说,LiveSortingProperites 只是观察者:您可以添加未排序的属性,并且当这些属性更改时 View 将更新。

If I want to change the sort basis, do I clear the SortDescription collection and then add new ones and "Refresh" the view?

最好的就是这样(微软也在做同样的事情):

    using (collectionViewSource.DeferRefresh())
{
collectionViewSource.SortDescriptions.Clear();
collectionViewSource.SortDescriptions.Add(new SortDescription("Foo"));
}

Do you need LiveSorting to handle additions/deletions to the underlying ObservableCollection or just in case certain properties of objects already in the collection change?

删除/添加会自动处理,如果启用了属性的实时排序,则将对所有项目(包括新项目)启用该实时排序。

关于wpf - 我需要 CollectionViewSource 排序/实时排序说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44272943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com