我有一个带有自定义排序器的列表视图(由 ListCollectionView.CustomSort 属性设置),但是我想在列表视图的顶部插入新项目。如何抑制 CustomSort?
我有一个想法来调整我的排序逻辑,所以新添加的项目将是第一个,但是这个解决方案有点臭。
为什么要压制CustomSort
?根据您的需要进行调整:
您可以为IComparer
对象中用于排序的属性 eGint.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);
}
}
}