【问题标题】:How can I show data in a DataGrid in WPF?如何在 WPF 的 DataGrid 中显示数据?
【发布时间】:2011-10-22 00:10:42
【问题描述】:

我有一个枚举和一个 Foo 类:

public enum Type
{
    Arithmetic, Fraction, ...
}

public class Foo
{
    public Foo(Type problemType, bool isCorrect)
    {
        ProblemType = problemType;
        IsCorrect = isCorrect;
    }

    public Type ProblemType
    {
        get; set;
    }

    public bool IsCorrect
    {
        get; set;
    }
}

然后我有一个 Foo 列表,它按 ProblemType 分类:

    public void ShowGradesInDataGrid()
    {
        List<Foo> list = new List<Foo>();
        list.Add(new Foo(Type.Arithmetic, true));
        list.Add(new Foo(Type.Fraction, true));
        list.Add(new Foo(Type.Arithmetic, false));
        list.Add(new Foo(Type.Arithmetic, true));
        list.Add(new Foo(Type.Fraction, false));
        list.Add(new Foo(Type.Arithmetic, false));

        List<List<Foo>> groupedLists = list.GroupBy(foo => foo.ProblemType)
                                          .OrderBy(group => group.Key)
                                          .Select(group => group.ToList())
                                          .ToList();

    }

我不知道如何在 WPF 的数据网格中显示 grupedLists。我试图以这种方式显示列表:

  • 问题类型 1(算术)
    • |绿色|红色|绿色|红色|
  • 问题类型 2(分数)
  • |绿色|红色|

我放绿色和红色的地方是带填充的矩形。

 if (IsCorrect)
     // put rectangle with fill green
 else
     // put rectangle with fill red

嗯,颜色对我来说是一个加分项,我实际上想显示在数据网格中分类的列表。 提前致谢。

【问题讨论】:

  • 一般来说,这个问题似乎不适合 DataGrid。无法对数据进行分组 - DataGrids 显示数据网格。您可以使用绑定和单元格样式进行格式化,但您可能需要考虑创建自己的控件/控件集。您是否有理由要使用 DataGrid?
  • 嗯,我在看 WPF 教程:wpftutorial.net/DataGrid.html#grouping 我可以想象,我将把数据转换成一个集合之类的东西,但我真的不知道该怎么做

标签: c# wpf oop


【解决方案1】:

我认为您要问的内容类似于 this,使用 ItemsControl.GroupStyle 搜索分组行。就矩形而言,您可能希望使用数据触发器。检查this
PS:两篇文章都有数据触发器,但是第二篇比较好理解。

【讨论】:

  • 没错,就像我正在尝试做的第一个链接
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-03
  • 1970-01-01
  • 2012-04-04
  • 1970-01-01
  • 1970-01-01
  • 2011-08-01
  • 1970-01-01
相关资源
最近更新 更多