我上过这堂课:
public enum KindOfPerson
{
Student, Teacher, ...
}
public class Person
{
// This contains only numbers between 0 and 1
public double ScorePercent { get; set; }
public KindOfPerson Type { get; set; }
}
我有一个人员列表,然后我应用这个LINQ函数,得到另一个由KindOfPerson分类的列表,并计算属于该KindOfPerson的所有人的平均分数:
var groupedLists = peopleList.GroupBy(person => person.Type)
.OrderBy(group => group.Key)
.Select(group => new {
People = group.ToList(),
AverageScore = group.Average(p => p.ScorePercent)
})
.ToList();
我想在DataGrid中显示此列表,但我不知道这样做。
我正在尝试这样做:
[DATAGRID]
学生平均分:XXX
SCORE PERCENT 1
SCORE PERCENT 2
老师平均分:YYY
SCORE PERCENT 1
SCORE PERCENT 2
类似的东西,咕噜咕噜。
更新
我认为此代码可以帮助我们:http://leeontech.wordpress.com/2010/02/01/summary-row-in-datagrid/
答案 0 :(得分:3)
Here您可以找到有关如何使用DataGrid进行分组的示例。 Here是关于如何实施分组的另一个链接。
主要是在所有可分组的WPF控件中完成。但请注意,如果使用分组功能,DataGrid将失去UI虚拟化的功能。因此它通常不是一个 使用分组数据创建大型列表的好主意。
对于模型,我建议您创建一个用于每个订单项的视图模型。此VM提供所有必需属性,例如ScorePercent1,ScorePercent2以及分组标题。
答案 1 :(得分:0)
您需要使用不同类型的视图,例如TreeView,或者您需要在DataGrid中有一个列,其中包含DataGrid中每行的另一个DataGrid(或其他数据容器)。
根据您要展示的内容,看起来TreeView确实是您正在寻找的。 p>
答案 2 :(得分:0)
如果您能够使用第三方组件,我会建议Telerik的RadGrid。它内置了分组/详细功能。
如果您需要免费的东西,可以查看以下链接:
http://www.vbknowledgebase.com/?Id=125&Desc=Asp.Net-Hierarchical-GridView