【发布时间】: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 我可以想象,我将把数据转换成一个集合之类的东西,但我真的不知道该怎么做