你的位置:首页 > ASP.net教程

[ASP.net教程]C# datagridview列绑定类中类的属性


datagridview编辑列时,对于类中类的属性绑定,尝试了一下”类名.属性名“ 并没有正确绑定,后又尝试了几次无果,只能利用Linq来解决了,

首先,datagridview要绑定的是学生类(Student),而学生类里有老师类(Teacher)

 1 public class Student 2 { 3   public int Id; 4    public Teacher teacher;   5 }   6  7 public class Teacher 8 { 9   public string Name;10 }

 

  正常是这样:datagridview.Datasource=List<Student>;  但是无法将列绑定 teacher.Name  

 1 // 2 List<Student> list=从某处得来的数据,比如数据库 3  4 // datagridview.DataSource=list ;  此句改为如下 5  6 var list2=list.Select(s=>new {s.Id,  teacher_name=s.teacher.Name});  //转为匿名 7  8  datagridview.DataSource=list2.ToList(); 9  10  

 

 //最后再将 需要绑定的那一列的绑定 名称写为:teacher_name 。即可

  

 

为什要最后  ToList()?,因为,list2是 IEnumerable,是不能直接被datagridview绑定。