【发布时间】:2018-05-18 19:43:55
【问题描述】:
我有一个通过 XAML 绑定到 ObservableCollection 的 ListView。我曾经在后面的代码中进行排序,但是有很多操作我必须记住,排序需要刷新。
所以我想让它更干净,让直接在 XAML 中的排序更动态。
不幸的是,我找不到执行此操作的标签/属性。我找到的所有示例都是针对使用 <CollectionViewSource.SortDescription> 的 WPF 应用程序,XAML 似乎不支持,至少目前是这样。
我在 UWP 社区工具包中找到了一个 AdvancedCollectionView 控件,然后我使用了该控件。此控件使用现有的 ObservableCollection,并且 ListView(源)现在绑定到此 AdvancedCollectionView。
它似乎工作 - 那么有什么问题。
1)我现在必须使用带有许多许可证的巨大 Nu-Get 包(我应该读过 :-))
2)我为绑定到 ListView(单个项目)的类实现了 INotifyPropertyChanged,以便 ListView 在属性时刷新,例如项目的标题发生变化。在我切换到 AdvancedCollectionView 之前,这曾经可以正常工作,但现在事件引发者会抛出 NullReferenceExcpetion。
所以我现在问自己,是否真的没有一种更开箱即用的方法来执行按绑定属性对 ListView 进行排序的简单任务?
【问题讨论】:
-
"。我以前在"后面的代码中进行排序,我能知道你是怎么做的吗?您的意思是您只想在 xaml 中执行此操作而不需要任何代码吗?连
AdvancedCollectionView后面都是做排序码,除了需要引用包外,能满足你的需求吗? -
由于社区工具包是开源的,您可以参考您需要尝试构建自己的帮助类的部分。
-
我的意思是,我使用 Sort() 扩展方法“手动”对 ObservableCollection 进行了排序。
标签: sorting xaml listview uwp observablecollection