DataGridView中dataSource数据绑定原理,及与Rows.Add添加效率
DataGridView中dataSource数据绑定原理,及与Rows.Add添加效率
首先看看,我们传统的绑定方法:DATASOURCE
1.F11找到DATASOURCE,是在SYSTEM.WIINDOWS.FORMS.DATAGRIDVIEW
2.REFLECTOR打开FORMS.DLL,跟到SYSTEM.WIINDOWS.FORMS.DATAGRIDVIEW下:
3.双击SET_DATASOURCE,我们看到:
4、仔细分析下,进入setDataConnetction
6.不难发现,notification.Initialized事件绑定了数据,进入datasource_initialized
7.this.owner.RefreshColumsAndRows()更新行列,就是在绑定数据啦!进入下一步:
8、先更新列,再更新行:
9、this.Rows.AddInteral();发现了吧,最后几行,是用foreach添加列,再更新行
传统的绑定方式就到这里了,我们再来看看this.datagridview.Rows.Add绑定:
同样,先找到Add:
REFLECTOR查到Add,发现同样是在使用AddInternal()方法再添加数据!
下面的事情就和DATASOURCE绑定一样了
分析结果:
Rows.Add()方法省去了更多的数据类型的转换和判断的步骤,数据绑定效率更高,但是使用不方便,容易出错。