我需要 CollectionViewSource Sorting/LiveSorting 说明
I need CollectionViewSource Sorting/LiveSorting Clarification
我一直在搜索这个,但我找不到任何可以真正为我解决问题的东西。
SortDescription 集合和 LiveSortingProperties 之间的交互是什么?
LiveSorting 是否依赖 SortDescriptions 的存在来确定 ASC/DESC 顺序?实时排序属性是否只是关于要监视哪些属性发生变化的规范?
如果我想更改排序基础,是否要清除 SortDescription 集合然后添加新集合和"Refresh" 视图?
您是否需要 LiveSorting 来处理 additions/deletions 底层 ObservableCollection 或以防万一集合中已有对象的某些属性发生变化?
What is the interaction between the SortDescription collection and the
LiveSortingProperties?
LiveSortingProperties
来自 CollectionViewSource
并监听您的项目(必须实现 INotifyPropertyChanged)以了解特定属性的更改;如果它们发生变化,视图会自动更新。在添加 LiveSortingProperties
之后设置 IsLiveSortingRequested = true
也很重要,这样它将设置所需的一切(侦听器)。 LiveSortingProperties
独立于 SortDescriptions
,SortDescriptions
进行排序,LiveSortingProperties
更新视图。
很高兴知道:排序由 ICollectionView and the live updating is done by the ICollectionViewLiveShaping. The CollectionViewSource is just a proxy which calls the methods/changes properties of the interfaces. The ListCollectionView 完成,是 ICollectionView
和 ICollectionViewLiveShaping
的默认实现。
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
只是观察者:您可以在其中添加您未排序的属性,当这些属性发生变化时视图将更新。
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?
Deletions/Additions 是自动处理的,如果启用 属性 上的实时排序,它将在所有项目上启用,包括新项目。
我一直在搜索这个,但我找不到任何可以真正为我解决问题的东西。
SortDescription 集合和 LiveSortingProperties 之间的交互是什么?
LiveSorting 是否依赖 SortDescriptions 的存在来确定 ASC/DESC 顺序?实时排序属性是否只是关于要监视哪些属性发生变化的规范?
如果我想更改排序基础,是否要清除 SortDescription 集合然后添加新集合和"Refresh" 视图?
您是否需要 LiveSorting 来处理 additions/deletions 底层 ObservableCollection 或以防万一集合中已有对象的某些属性发生变化?
What is the interaction between the SortDescription collection and the LiveSortingProperties?
LiveSortingProperties
来自 CollectionViewSource
并监听您的项目(必须实现 INotifyPropertyChanged)以了解特定属性的更改;如果它们发生变化,视图会自动更新。在添加 LiveSortingProperties
之后设置 IsLiveSortingRequested = true
也很重要,这样它将设置所需的一切(侦听器)。 LiveSortingProperties
独立于 SortDescriptions
,SortDescriptions
进行排序,LiveSortingProperties
更新视图。
很高兴知道:排序由 ICollectionView and the live updating is done by the ICollectionViewLiveShaping. The CollectionViewSource is just a proxy which calls the methods/changes properties of the interfaces. The ListCollectionView 完成,是 ICollectionView
和 ICollectionViewLiveShaping
的默认实现。
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
只是观察者:您可以在其中添加您未排序的属性,当这些属性发生变化时视图将更新。
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?
Deletions/Additions 是自动处理的,如果启用 属性 上的实时排序,它将在所有项目上启用,包括新项目。