将ListView绑定到XAML中的ObservableCollection

时间:2017-12-05 07:57:40

标签: sorting xaml listview uwp observablecollection

我有ListView通过XAML绑定到ObservableCollection。我过去常常在代码中进行排序,但是有许多操作我必须记住需要刷新排序。

所以我想让它更干净,更直接地在XAML中进行排序。

不幸的是我无法找到标签/属性来执行此操作。我找到的所有示例都是针对使用<CollectionViewSource.SortDescription>的WPF应用程序,这似乎在XAML中不受支持,至少目前是这样。

我在UWP社区工具包中找到了AdvancedCollectionView控件,然后我使用了该控件。此控件使用现有的ObservableCollection,而ListView(源)现在绑定到此AdvancedCollectionView。

它似乎有用 - 所以问题是什么。 1)我现在必须使用一个包含许多许可证的巨大Nu-Get包(我应该阅读:-)) 2)我为绑定到ListView(单个项)的类实现了INotifyPropertyChanged,以便在属性(例如,属性)时刷新ListView。项目标题发生变化。这曾经在我切换到AdvancedCollectionView之前工作,但现在事件提升者抛出NullReferenceExcpetion

所以我现在问自己,是否真的有一种更开箱即用的方式来完成通过绑定属性对ListView进行排序的简单任务?

1 个答案:

答案 0 :(得分:0)

显然出现了AdvancedCollectionView的问题,因为当没有设置Filter属性时,当前存在一个错误。

我用完整的源替换了NuGet-Package并对其进行了调试,以便在ItemOnPropertyChanged中找到它在线上抛出NullReferenceException的错误:

filterResult = _filter(item);

因为“_filter”为空。

我重新编写了这个bug,看起来修复将在社区工具包的2.2版本中: https://github.com/Microsoft/UWPCommunityToolkit/issues/1686