0

正常に動作するクエリがあります

  private ObservableCollection<Grouping<string, SEListItemTemplate>> MonkeysGrouped { get; set; }


            var sorted = from item in CollPublic
                         orderby item.Title
                         group item by item.Title into listData
                         select new Grouping<string, SEListItemTemplate>(listData.Key, listData);

            MonkeysGrouped = new ObservableCollection<Grouping<string, SEListItemTemplate>>(sorted);

            list.ItemsSource = MonkeysGrouped;

以下のようなカスタムの並べ替えとグループ化関数を使用したい場合は、どうすればよいですか?

var sorted = from item in CollPublic
                         orderby (OrderByFunc)
                         group item by (GroupByFunc) into listData
                         select new Grouping<string, SEListItemTemplate>(listData.Key, listData);

これを試すと、最後の行 (Select new Grouping..) でコンパイル エラーがスローされます。文字列をオブジェクトに変更すると、正常にコンパイルされますが、実行時にエラーがスローされ、少なくとも 1 つのオブジェクトが Icomparable for Ordering を実装する必要があり、少なくとも 1 つのオブジェクトが Icomparable を実装する必要があります。上記のクエリのグループ化部分に IGrouping を実装します。どうすればこれを達成できますか?

念のため、以下は私のカスタムSort & Group Funcsの定義です

public Func<SEListItemTemplate, Object> OrderByFunc
    {
        get{return _orderByFunc; }
        set {_orderByFunc = value; }
    }

public Func<SEListItemTemplate, Object> OrderByFunc
    {
        get {return _orderByFunc; }
        set {_orderByFunc = value; }
    }

どんな助けでも大歓迎です。ありがとう

4

1 に答える 1