datagridview绑定List<T>不显示数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了datagridview绑定List<T>不显示数据相关的知识,希望对你有一定的参考价值。

我的后台有一个实体类,没有构造方法,通过查询返回该实体类的List<User> , 调试程序的时候,数据已经绑定到LIST中了,我在前台定义一个绑定方法,用datagridview.dataSorce = lists ; 然后在窗体的加载事件Load中调用了这个绑定方法,但是datagridview不显示数据,datagridview没有databind方法。大虾们能给个详细的绑定List<T>的方法吗? 或者说下思路。。谢谢了

不要用list<>绑定数据,能绑定,但是不是动态更新,推荐bindinglist<>,用法一样
datagridview.datasource=new bindinglist<user>()new user(),new user();
、数据绑定的问题:
当DataGridView的DataSource绑定的为DataTable时,当DataTable的内容发生改变时,DataGridView中的内容会自动跟随DataTable改变而不用重新绑定数据源;

而把List<T>绑定到DataGridView则不然,当List<T>的内容发生改变是,需要先设置DataGridView的DataSource属性为new List<T>(),

然后再把作过改动的List<T>重新赋于DataGridView的DataSource。

(注:不能设置DataGridView的DataSource属性为null,否则会破坏DataGridView中已经设置好的列结构。)

2、数据绑定后的添加删除问题:

如果要对绑定在DataGridView中的List<T>进行数据的添加删除,先要把List<T>转换成BindingList<T>,

再进行绑定:DataGridView1.DataSource=new BindingList<MyClass>(new List<MyClass>())。否则的话会产生许多意想不到的错误。

如:初始绑定空数据后再添加数据绑定后,却取不到DataGridView.CurrentCell属性。
参考技术A 请尝试用GridView控件,这个是.net2.0用来取代以前的DataGrid的,功能更加强大
GridView1.DataSource = list;
GridView1.DataBind();
参考技术B 关注 参考技术C 应该不会出现这种问题的:
dataGridView1.DataSource = new List<User> new User Name = "123" , new User Name = "456" ;
我这样做都可以显示,你确认datasource有内容?你自己做点假数据试试。本回答被提问者采纳

以上是关于datagridview绑定List<T>不显示数据的主要内容,如果未能解决你的问题,请参考以下文章

在 WinForm 中将 List<T> 绑定到 DataGridView

如何为绑定到 List<T> 的 dataGridView 设置 columnNames?

将 DataGridView 绑定到 List<T> 不显示数据

实体框架:绑定到 DataGridView 的 List<T> 添加回已删除对象以查看

WinForm程序用使用List对象绑定DataGridView数据源

winform datagridview 绑定泛型集合变得不支持排序的解决方案