WPF 集合视图源排序问题与空值
本文关键字:问题 空值 排序 集合 视图 WPF | 更新日期: 2023-09-27 18:34:34
我有一个集合视图源,其源是一个可观察的集合,我正在这样排序;
_viewSource.SortDescriptions.Add(new SortDescription() { PropertyName ="PropertyName", Direction = ListSortDirection.Ascending });
这一切都很好用,直到我尝试按列表中具有 null 值的属性进行排序。然后我得到一个无效操作异常,"无法比较数组中的两个元素">
我是否必须实现自己的 IComparer 类才能解决空问题,或者我错过了一个技巧?
提前谢谢..
是的,要处理空值,您必须写下自己的custom sorter
实现IComparer
。可以参考这个以防万一 - IComparer 示例。
private class sortYearAscendingHelper : IComparer
{
int IComparer.Compare(object a, object b)
{
car c1=(car)a;
car c2=(car)b;
if(c1.year == null && c2.year == null)
return 0;
if(c1.year == null && c2.year != null)
return -1;
if(c1.year != null && c2.year == null)
return 1;
if (c1.year > c2.year)
return 1;
if (c1.year < c2.year)
return -1;
else
return 0;
}
}