1

我有一个带有自定义排序器的列表视图(由 ListCollectionView.CustomSort 属性设置),但是我想在列表视图的顶部插入新项目。如何抑制 CustomSort?

我有一个想法来调整我的排序逻辑,所以新添加的项目将是第一个,但是这个解决方案有点臭。

4

1 回答 1

0

为什么要压制CustomSort?根据您的需要进行调整:

  • 您可以为IComparer对象中用于排序的属性 eGint.MaxValuestring.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);
            }
        }
    }
    
于 2012-07-06T14:17:17.370 回答