在ASP.NET中的GridView控件在显示绑定数据时有一个RowDataUpdated事件,在其事件响应函数里可以逐行扫描每行所绑定的数据,根据需要可以修改GridView显示的格式或Value等,比较方便。

而在WinForm工程中,与之类似的DataGridView控件,只有RowsAdded事件与之类似,但与GridView不同的是,RowsAdded事件的响应不像RowDataUpdated那样逐条响应,我在Debug很久才发现这个问题,其实只要看到DataGridViewRowsAddedEventArgs e的属性中的RowCount就明白,RowsAdded事件响应时可能插入多行,也可能插入单行(Rows可是复数形式,笨)。故,使用e.RowIndex获取插入行的索引值,e.RowCount获取插入行的数量,使用这两个变量可以方便地遍历所绑定的数据,代码如下所示:

  1.         private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)  
  2.         {  
  3.             int rowIndex = e.RowIndex;  
  4.             int rowCount = e.RowCount;  
  5.             for (int i = rowIndex; i < rowIndex + rowCount; i++)  
  6.             {  
  7.                 //绑定的为List<AccountInfo>数据集,此处获取指定行绑定的数据  
  8.                 AccountInfo info = this.dataGridView1.Rows[i].DataBoundItem as AccountInfo;
  9.  
  10. /////////////////////////////////////////  
  11. // 其他数据操作等  
  12. ///////////////////////////////////////////  
  13.              }  
  14.         }