如何在WPF中的DataGrid中显示数据?

时间:2011-08-07 21:53:41

标签: c# wpf oop

我有一个enum和一个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列表,按类型分类:

    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(算术)&lt; - 扩展器
    • | GREEN |红色| GREEN | RED |
  • 问题类型2(分数)&lt; - 扩展器
    • | GREEN | RED |

我把绿色和红色放在一起填充的矩形。

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

对我来说颜色是一个加号,我实际上想要显示在datagrid中分类的列表。 提前谢谢。

1 个答案:

答案 0 :(得分:2)

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