我有一个带有自定义排序器的列表视图(由ListCollectionView.CustomSort属性设置),但是我想在列表视图的顶部插入新项目。我该如何压制CustomSort?
我有一个想法来调整我的排序逻辑,所以新添加的项目将是第一个,但是这个解决方案有点臭。
答案 0 :(得分:0)
为什么要压制CustomSort
?根据您的需求进行调整:
您可以为IComparer
对象中用于排序的属性赋予所有新项目极值,例如。 int.MaxValue
或string.Empty
。
或者创建一个额外的属性IsNew并将其包含在比较过程中。
class MyClass
{
public bool IsNew { get; set; }
public string Name { get; set; }
}
class MyComparer : IComparer<MyClass>
{
public int Compare(MyClass x, MyClass y)
{
if (x.IsNew ^ y.IsNew)
{
return x.IsNew ? -1 : 1;
}
else
{
return StringComparer.InvariantCulture.Compare(x.Name, y.Name);
}
}
}