找到了:
if the grid has been sorted, you can no longer get at the current row in the table through the grid's CurrentRowIndex. But for both unsorted and sorted grids, you can get at the current row through the BindingContext and the Current property of the BindingManagerBase. 
 
[C#] 
 
     BindingManagerBase bm = this.dataGrid1.BindingContextr[this.dataGrid1.DataSource, this.dataGrid1.DataMember]; 
 
     DataRow dr = ((DataRowView)bm.Current).Row; 
 

解决方案 »

  1.   

    好象用这个也行。
     CurrencyManager cm = (CurrencyManager)this.BindingContext[dataGrid1.DataSource, dataGrid1.DataMember];      
     DataRow dr = ((DataRowView)cm.List).Row;
      

  2.   

    还可以这样
    CurrencyManager cm;
    cm=(CurrencyManager)dataGrid1.BindingContext[dataGrid1.DataSource];
    DataRowView drv;
    drv =(DataRowView)cm.Current;
    DataRow myDataRow = drv.Row;