我需要从da数据绑定DataGridView获取当前选定的对象.
我不需要当前所选单元格的对象,而是整个行所基于的对象,在这种情况下,BusinessObject属性将构成网格的列.
我可以查看DataSource,但它本身只是一个对象,可以是BindingSource或IBindingList或类似的东西 - 所以不容易标准化的方式来获取想要的对象.
在此之后需要检查businessObject以获取名为IsChanged的属性,并在绑定源选择下一个项目之前要求用户保存或放弃更改.因此,我必须找出DataGridView的RowValidating-Event中的当前对象,因为BindingSource不提供在更改发生之前停止更改的事件.请参阅此处了解众所周知的问题
谢谢阅读 ;-)
DataGridViewRow.DataBoundItem
包含它所绑定的"业务"对象.
这是我的代码把它放到你的Person类中
public static explicit operator Person(DataRow dr) { Person p = new Person(); p.adi = dr.ItemArray[0].ToString(); p.id = Int32.Parse(dr.ItemArray[1].ToString()); p.soyadi = dr.ItemArray[2].ToString(); p.kartNo = dr.ItemArray[3].ToString(); p.dogumTarihi = DateTime.Parse( dr.ItemArray[4].ToString() ); p.adres = dr.ItemArray[5].ToString(); p.meslek = dr.ItemArray[6].ToString(); p.telefon = dr.ItemArray[7].ToString(); p.gsm = dr.ItemArray[8].ToString(); p.eposta = dr.ItemArray[9].ToString(); return p; }
这是一个更新按钮点击
DataRow row = (dataGridView1.SelectedRows[0].DataBoundItem as DataRowView).Row; Person selected = (Person)row;