1

カスタム ソーター (ListCollectionView.CustomSort プロパティで設定) を備えたリスト ビューがありますが、リスト ビューの上部に新しい項目を挿入したいと考えています。CustomSort を抑制するにはどうすればよいですか?

ソートロジックを調整する考えがあるため、新しく追加されたアイテムが最初のアイテムになりますが、このソリューションは少し臭いです。

4

1 に答える 1

0

Why suppress CustomSort? Adapt it for your needs:

  • You could give all new items an extreme value for the property used in IComparer object for sorting, e.G. int.MaxValue or string.Empty.

  • Or create an additional property IsNew and include it into comparing process.

    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 に答える