我的查询工作正常
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;
如果现在我想使用Custom Sorting&amp;分组功能,如下所示,我该怎么做?
var sorted = from item in CollPublic
orderby (OrderByFunc)
group item by (GroupByFunc) into listData
select new Grouping<string, SEListItemTemplate>(listData.Key, listData);
如果我尝试这个,最后一行(选择新的分组..)会抛出一个编译错误如果我将字符串更改为对象它编译正常,但然后在运行时抛出错误说至少有一个对象应该实现Icomparable for Ordering&amp;至少有一个对象应该在上面的查询中为分组部分实现IGrouping。我怎样才能做到这一点?
以下需要的是我自定义Sort&amp; amp;的定义。小组Funcs
public Func<SEListItemTemplate, Object> OrderByFunc
{
get{return _orderByFunc; }
set {_orderByFunc = value; }
}
public Func<SEListItemTemplate, Object> OrderByFunc
{
get {return _orderByFunc; }
set {_orderByFunc = value; }
}
感谢任何帮助。谢谢
答案 0 :(得分:0)
更新:以下代码运行良好。如果有更好的方法可以在下面编写这个lambda函数,请告诉我。 `
var sorted = CollPublic.OrderBy(OrderByFunc).GroupBy(GroupByFunc);
foreach (var item in sorted)
{
var t = new Grouping<object, SEListItemTemplate>(item.Key, item);
MonkeysGrouped.Add(t);
}
list.ItemsSource = MonkeysGrouped;