在ASP.NET中的GridView控件在显示绑定数据时有一个RowDataUpdated事件,在其事件响应函数里可以逐行扫描每行所绑定的数据,根据需要可以修改GridView显示的格式或Value等,比较方便。
而在WinForm工程中,与之类似的DataGridView控件,只有RowsAdded事件与之类似,但与GridView不同的是,RowsAdded事件的响应不像RowDataUpdated那样逐条响应,我在Debug很久才发现这个问题,其实只要看到DataGridViewRowsAddedEventArgs e的属性中的RowCount就明白,RowsAdded事件响应时可能插入多行,也可能插入单行(Rows可是复数形式,笨)。故,使用e.RowIndex获取插入行的索引值,e.RowCount获取插入行的数量,使用这两个变量可以方便地遍历所绑定的数据,代码如下所示:
- private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
- {
- int rowIndex = e.RowIndex;
- int rowCount = e.RowCount;
- for (int i = rowIndex; i < rowIndex + rowCount; i++)
- {
- //绑定的为List<AccountInfo>数据集,此处获取指定行绑定的数据
- AccountInfo info = this.dataGridView1.Rows[i].DataBoundItem as AccountInfo;
- /////////////////////////////////////////
- // 其他数据操作等
- ///////////////////////////////////////////
- }
- }