我在winform中使用datagrid,此datagrid绑定了DataSource,但是当我把DataGrid进行排序后,我点击其中一行,有没有办法取出我点中行的记录?
dataGrid1.CurrentRowIndex是可以取出选中的行,但是我到DataSource(DataTable)取还是没有排序的DataTable.
((DataTable)dataGrid1.DataSource).Rows[dataGrid1.CurrentRowIndex]["field1"]//由于经过了排序,取出来肯定不是当前选择的。请问高手我如何可以取出我当前选择的记录?

解决方案 »

  1.   

    44:((DataRowView)this.BindingContext[dataSource,"dataMember"].Current)
    那个datarowview是根据你的datasource的类型决定的,当然你也可以用gettype查看。
      

  2.   

    System.Windows.Forms.BindingManagerBase bm = dg.BindingContext[dg.DataSource,dg.DataMember];
    DataRow dr = ((System.Data.DataRowView)bm.Current).Row;//这就是啦
      

  3.   

    System.Windows.Forms.BindingManagerBase BMG = dg.BindingContext[dg.DataSource,dg.DataMember];
    DataRow dr = ((System.Data.DataRowView)BMG.Current).Row;
      

  4.   

    感谢 MyLf(不睡觉的鱼) ,搞定了。