c# - 如何在DataGrid中显示分组数据? - 摘要行

标签 c# wpf oop

我有这个类(class):

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 中显示此列表,但我不知道该怎么做。

我正在尝试这样做:

[数据网格]

学生平均分:XXX

  • 得分百分比 1

  • 得分百分比 2

教师平均分:YYY

  • 得分百分比 1

  • 得分百分比 2

类似这样的事情,聚集在一起。

更新

我认为这段代码可以帮助我们:http://leeontech.wordpress.com/2010/02/01/summary-row-in-datagrid/

最佳答案

Here您可以找到有关如何使用 DataGrid 进行分组的示例。 Here是有关如何实现分组的另一个链接。

原则上,它的完成方式与所有可分组的 WPF 控件类似。但请注意,如果您使用分组功能,DataGrid 将失去 UI 虚拟化的功能。因此它一般不是 使用分组数据创建巨大的列表是个好主意。

对于模型,我建议您创建一个用于每个订单项的 View 模型。该虚拟机提供所有必需的属性,例如 ScorePercent1、ScorePercent2 以及分组标题。

关于c# - 如何在DataGrid中显示分组数据? - 摘要行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6998776/

相关文章:

wpf - 具有自定义排序的 CollectionViewSource

java - 您如何解释外行或编程初学者,面向对象方法的大胆点 - 安全性?

c# - 通过 ODBC 查询系统间缓存

c# - 自动实现的属性是否有隐含的集合?

c# - 如何将 SQL bigint 转换为等效的 C#

c# - 文本未在 ListViewItem 中换行

c# - 如何设置窗口的调整大小限制?

javascript - 为什么这里一般调用 hasOwnProperty?

language-agnostic - 继承还是条件?

c# - 将数据流式传输到 sql server 数据库而不缓冲整个数据