当ListCollectionView.CustomSort设置时,在列表视图的顶部插入新项

时间:2012-07-05 14:42:58

标签: wpf sorting

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

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

1 个答案:

答案 0 :(得分:0)

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

  • 您可以为IComparer对象中用于排序的属性赋予所有新项目极值,例如。 int.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);
            }
        }
    }