Как я могу показать данные в DataGrid в WPF? - PullRequest
0 голосов
/ 08 августа 2011

У меня есть перечисление и класс 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();

    }

Я не знаю, как показать списки grupedList в сетке данных в WPF. Я пытался показать список следующим образом:

  • ЗАДАЧА ТИПА 1 (Арифметика) <- EXPANDER <br>
    • | GREEN | RED | GREEN | RED |
  • ПРОБЛЕМА ТИПА 2 (Фракция)
    • | GREEN | RED |

Куда я положил Зеленый и Красный - это прямоугольники с заливкой.

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

Ну, цвет для меня плюс, я действительно хочу показать список, классифицированный в datagrid. Заранее спасибо.

1 Ответ

2 голосов
/ 08 августа 2011

Я думаю, что вы спрашиваете что-то похожее на this , Поиск Группировка строк с использованием ItemsControl.GroupStyle .Что касается прямоугольников, вы можете использовать триггеры данных.проверьте это .PS: в обеих статьях есть триггеры данных, но вторая лучше понять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...