【问题标题】:How to show the grouping data in a DataGrid? - Summary Row如何在 DataGrid 中显示分组数据? - 摘要行
【发布时间】:2011-10-23 08:22:45
【问题描述】:

我有这门课:

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/

【问题讨论】:

    标签: c# wpf oop


    【解决方案1】:

    您要么需要使用不同类型的视图,例如 TreeView,要么需要在 DataGrid 中有一个列,该列在 DataGrid 中的每行包含另一个 DataGrid(或其他数据容器)。

    根据您要显示的内容,TreeView 似乎确实是您正在寻找的内容。

    【讨论】:

      【解决方案2】:

      如果您能够使用第三方组件,我建议您使用 Telerik 的 RadGrid。它内置了分组/详细信息功能。

      如果你需要一些免费的东西,你可以看看这个链接:

      http://www.vbknowledgebase.com/?Id=125&Desc=Asp.Net-Hierarchical-GridView

      【讨论】:

        【解决方案3】:

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

        主要是在所有可分组的 WPF 控件中完成。但是请注意,如果您使用分组功能,DataGrid 会失去 UI 虚拟化的功能。因此一般不是 用分组数据创建大量列表的好主意。

        对于模型,我建议您创建一个用于每个订单项的视图模型。此 VM 提供所有必要的属性,例如 ScorePercent1、ScorePercent2 以及分组标题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-04
          • 1970-01-01
          • 2011-10-22
          相关资源
          最近更新 更多