如何将我的列表显示到C#Datagrid中?

时间:2014-05-06 15:16:26

标签: c# arrays list 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:芭芭拉,克里斯和丹尼斯),活动的数量(这里,3:杂耍,骑自行车,射箭)作为列数?

然后,在每个单元格中,如果学生参与该活动,则会有分数;如果他们没有参加该活动,则会有空白分数。最终,我想在数据网格中显示上述内容,而无需更改我的课程。

我试图通过这样做来确定独特学生的数量:

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

我想我想要创建一个二维数组,其行数等于上面的Count,列数等于3.然后,不知何故,我将该数组显示到Datagrid,但我不想'我知道怎么做。我正在使用C#2010 Express。

3 个答案:

答案 0 :(得分:1)

您基本上想要的是DataMatrix,其中行和列动态依赖于数据输入。

enter image description here

Theres也是Stackoverflow的合适答案,这将有所帮助 Dynamic data matrix WPF

您必须构建一个二维数组并将其提供给网格。

答案 1 :(得分:0)

将查询结果转换为通用List,并将其作为数据源传递给datagrid。

答案 2 :(得分:0)

您可以使用此

           yourdatagrid.DataSource = yourlist;