2014-05-06 2 views
2

У меня есть класс, полный студентов и я отслеживали деятельность которого они сделали, и что оценка они достигли на каждой операции, используя этот код:Как отобразить мой список в C# Datagrid?

public class TrackActivity 
{ 
    public String StudentName {get; set;} 
    public String ActivityName {get; set;} 
    public int ActivityScore {get; set;} // out of 10 points 
} 

Я в настоящее время список «TrackActivity» называется lstTrackScores , такие, что:.

Barbara, juggling, 9 
Barbara, cycling, 7 
Chris, cycling, 9 
Dennis, juggling, 8 
Dennis, cycling, 6 
Dennis, archery, 10 

я не знаю заранее, сколько уникальных студенты в моем списке, но я узнать, во время выполнения максимального количества мероприятий, каждый студент может участвовать в разделе Как отобразите вышеуказанную информацию в datagrid так, чтобы количество уникальных учеников действовало как количество строк (здесь, 3: Barbar а, Крис и Деннис), а количество действий (здесь, 3: жонглирование, велоспорт, стрельба из лука) действуют как количество столбцов?

Затем в каждой ячейке будет оценка, если учащийся участвовал в этом мероприятии, и пробел, если они не участвовали в этом мероприятии. В конечном счете, я хотел бы показать выше в datagrid, не меняя свой класс.

Я попытался определить количество уникальных студентов, делая это:

lstTrackScores.Select(x => x.StudentNames).Distinct().Count(); 

Я думаю, что я хочу, чтобы создать 2-мерный массив с числом строк, равных выше граф, а количество столбцов равных до 3. Затем каким-то образом я показываю этот массив в Datagrid, но я не знаю, как это сделать. Я использую C# 2010 Express.

ответ

1

Что вы в основном хотите - это DataMatrix, где строки и столбцы динамически зависят от ввода данных.

enter image description here

Theres также соответствующий ответ на Stackoverflow который поможет Dynamic data matrix WPF

Вы должны построить 2d массив и кормить его в сетку.

+0

Этот снимок - именно то, что я пытаюсь сделать, спасибо за ссылку – phan

0

преобразовать результат запроса в общий список и передать его в качестве источника данных для datagrid.

+0

Он также нуждается в динамических столбцов. – BlueM

0

Вы можете использовать этот

  yourdatagrid.DataSource = yourlist; 
Смежные вопросы