我有一个工作正常的查询
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 & 至少一个对象应该为上述查询中的分组部分实现 IGrouping。我怎样才能做到这一点?
以防万一,下面是我的自定义排序和分组功能的定义
public Func<SEListItemTemplate, Object> OrderByFunc
{
get{return _orderByFunc; }
set {_orderByFunc = value; }
}
public Func<SEListItemTemplate, Object> OrderByFunc
{
get {return _orderByFunc; }
set {_orderByFunc = value; }
}
任何帮助表示赞赏。谢谢