积极答复者
DataGridView.DataSource()绑定数据源为什么会改变DataGridView的结构

问题
-
我在窗体上为DataGridView添加好了列,然后用List<T>泛型集合作为DataGridView.DataSource()的数据源,它为什么会自动找到相应的列进行添加?然而我再用DataTable作为DataGridView.DataSource()的数据源重新绑定一次,它却会把列标题都清空!!!这是为什么?
例如以下代码:
//先实例化一张表, DataTable table=new DataTable(); ...//向表中添加数据代码省略 //作为DataGrideView的数据源绑定,可以按照事先定义好的列自动显示到DataGrideView控件里面 dgvList.DataSource = table; //创建一个List泛型集合。 List<Person> list=new List<Person>(); //重新作为DataGrideView的数据源绑定,为什么会把搭建窗体的时候添加的列全部清除掉 dgvList.DataSource = list;
- 已编辑 -迷- 2012年4月13日 15:40
答案
-
dataGrid的列自动生成,如果数据来源中存在列,则会自动添加,重新绑定数据源时,也会重新执行,所以dataGrid会重新绑定,也就重新生成列,原来的数据都不会存在了
- 已标记为答案 Jason Dot WangModerator 2012年4月23日 1:53
全部回复
-
Hi -迷-,
你能否贴出你具体的代码,以便我们能够定位错误和帮你分析代码内的问题?
Jason Wang [MSFT]
MSDN Community Support | Feedback to us
-
//先实例化一张表, DataTable table=new DataTable(); ...//向表中添加数据代码省略 //作为DataGrideView的数据源绑定,可以按照事先定义好的列自动显示到DataGrideView控件里面 dgvList.DataSource = table; //创建一个List泛型集合。 List<Person> list=new List<Person>(); //重新作为DataGrideView的数据源绑定,为什么会把搭建窗体的时候添加的列全部清除掉 dgvList.DataSource = list;
-
dataGrid的列自动生成,如果数据来源中存在列,则会自动添加,重新绑定数据源时,也会重新执行,所以dataGrid会重新绑定,也就重新生成列,原来的数据都不会存在了
- 已标记为答案 Jason Dot WangModerator 2012年4月23日 1:53