C# datagridview列绑定类中类的属性
Posted 爱前端的后端Coder
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# datagridview列绑定类中类的属性相关的知识,希望对你有一定的参考价值。
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://www.cnblogs.com/linghaoxinpian/p/5906374.html
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绑定。
以上是关于C# datagridview列绑定类中类的属性的主要内容,如果未能解决你的问题,请参考以下文章
C# 控制datagridview的combox属性的列绑定数据
是否有一个属性我可以在我的类中使用来告诉 DataGridView 在绑定到 List<MyClass> 时不要为其创建列
C#中CollectionBase类的属性List和InnerList的用用途和差别.