因此,我的UWP应用中有一个AdvancedCollectionView
,与ObservableCollection
绑定。代表集合中每个ViewModel
的{{1}}具有几种类型的属性,包括Item
,string
和decimal?
。
一切都很好,直到......我尝试根据DateTime?
属性之一添加SortDescriptor
,这时我得到无法比较数组中的两个元素例外。 DateTime?
消息是著名的对象引用,未设置为对象的实例。
InnerException
上的堆栈跟踪如下:
InnerException
代码如下:
at Microsoft.Toolkit.Uwp.UI.AdvancedCollectionView.System.Collections.Generic.IComparer<System.Object>.Compare(Object x, Object y)
at System.Collections.Generic.ArraySortHelper`1.InternalBinarySearch(T[] array, Int32 index, Int32 length, T value, IComparer`1 comparer)
at System.Collections.Generic.ArraySortHelper`1.BinarySearch(T[] array, Int32 index, Int32 length, T value, IComparer`1 comparer)
通过其他任何属性类型进行排序都可以。所以...我在做什么错了?
以下是this.ItemsView.SortDescriptions.Add(new SortDescription("PurchaseDate", SortDirection.Ascending));
上文档的链接:https://docs.microsoft.com/en-us/windows/uwpcommunitytoolkit/helpers/advancedcollectionview
它包含另一个指向“排序”文档的链接,但是它是将来文档的占位符,或者该链接已损坏。