假如DataGrid的数据源为dataSet11:
for(int i=0;i<this.dataSet11.Tables[0].Rows.Count;i++)
  {
MessageBox.Show(dataSet11.Tables[0].Rows[i].RowState.ToString());
  }

解决方案 »

  1.   

    谢谢,你的方法是找到table中每一行的状态,我只是要取得Grid中每一行的状态,而Grid中每一行并不一定与Table中每一行的顺序相同.比如table中有delete的row,在grid并不显示出来
      

  2.   

    是这麽回事。主要是在 DataTable的 DataView 的RowStateFilter属性上。默认为DataViewRowState.CurrentRows 你可以改为DataViewRowState.Deleted就知显示delete.还有如果想grid 的行和DataTable行对应。如下一例 dt.DefaultView[grid.CurrentRowIndex].Row. 千万不要用dt.DefaultView.DataTable.Rows[grid.CurrentRowIndex].Row. 因为Grid一sort.就乱了。
      

  3.   

    还是可以实现的,你建立一个DataView:dv  ,然后dv.Table =dataSet.Tables[0];
    DataGrid.DataSource = dv ;
    我试过的,DataGrid即使Sort了也不会乱。
      

  4.   

    那你想干甚么了,是不是想取出grid 的 当前 行。或者显示delete 的行。如下:
    还是可以实现的,你建立一个DataView:dv  ,然后dv.Table =dataSet.Tables[0];
    dv.RowStateFilter = DataViewRowState.Deleted; 就只显示delete的行。
    DataGrid.DataSource = dv ;
    我试过的,DataGrid即使Sort了也不会乱。
      

  5.   

    其实你还要删除的行干吗? 在DataGrid.DataSource = dv 之前.调用 dv.Table.AcceptChange()就OK了.