我想将 List of CourseDetails 绑定List<CourseDetails>
到grid / xtragrid。每个 CourseDetail 都有一个StudentList
类型 为 的属性List<Student>
。学生列表应进行旋转,以使结果如下所示:
我的问题
我怎样才能使每个学生都旋转,StudentList
以便我可以将 a 数据绑定List<CourseDetails>
到同一个xtragrid。
var courseList = List<CourseDetails>();
courseList.Add(cd1);
courseList.Add(cd2);
我至少有三个我无法解决的问题:
- 如何在 courseDetails 实例中旋转 StudentList
- 如何将两个 courseDetail 对象 (cd1, cd2) / 或 n (n< 13000) 合并在一起,为每个学生创建一个单独的列
- 像 courseDetails 这样的对象如何绑定到 xtragrid。
在 Gist 上演示 Linqpad
班级课程详情
下面的类代表一所学校的一门课程。
public class CourseDetails{
public int Id{ get; set;}
public Course Course{ get; set;}
public Teacher Teacher{get; set;}
public Room Room{get; set;}
public List<Student> StudentList{get; set;}
}
清单List<CourseDetails>
a 中的每个对象都List<CourseDetails>
包含一个学生列表。有时学生列表中只有少数学生(2 到 5 名),有时每个学生列表有 15 到 40 名学生。CourseDetails 之间的学生可以重叠,但也可以不相交(不相交/不重叠)
第一个var cd1 = new CourseDetails()
包含 3 名学生List<Student>
var cd1 = new CourseDetails(){
Id =1
,Course = new Course(){CourseId = 435, CourseName="C# Ninja"}
,Teacher = new Teacher(){TeacherId=48, TeacherName="J Skee"}
,Room = new Room(){RoomId=32, RoomName="base floor R001"}
,StudentList = new List<Student>(){
new Student(){Id = 101, StudentName="Amy"}
,new Student(){Id = 104, StudentName="Koothrap"}
,new Student(){Id = 105, StudentName="Cooper"}
}
};
第二个var cd2 = new CourseDetails()
包含 2 名学生List<Student>
var cd2 = new CourseDetails(){
Id =1
,Course = new Course(){CourseId = 201, CourseName="SQL Basics"}
,Teacher = new Teacher(){TeacherId=30, TeacherName="M Gra"}
,Room = new Room(){RoomId=80, RoomName="2th floor R100"}
,StudentList = new List<Student>(){
new Student(){Id = 101, StudentName="Amy"}
,new Student(){Id = 102, StudentName="Penny"}
}
};
为了简化屏幕截图,请使用 aTuple<string, string,....>
但对于网格,我希望每列都有基础属性的数据类型(int、string、date、...)。以开头的第一行将Id, Course, Teacher, Amy, ...
是网格的标题。