我需要从da数据绑定DataGridView获取当前选定的对象 .
我不需要当前所选单元格的对象,而是整行所基于的对象,在这种情况下,BusinessObject属性构成网格的列 .
我可以查看DataSource,但它本身只是一个对象,可以是BindingSource或IBindingList或类似的东西 - 所以不容易标准化的方式来获取想要的对象 .
在此之后需要检查businessObject以获取名为IsChanged的属性,并在绑定源选择下一个项目之前要求用户保存或放弃更改 . 因此,我必须找到DataGridView的RowValidating-Event内的当前对象,因为BindingSource不提供在更改发生之前停止更改的事件 . See here for the well known problem
谢谢阅读 ;-)
5 回答
既然你确实声明了IBindingList - 是的,因为其他人已经说过DataBoundItem属性会给你你需要的东西 - 我之前遇到过它的一个问题,最后得到一个空参考但是现在我想不到这个场景它发生在哪里 .
如果您使用BindingSource进行数据绑定 - 您可以捕获BindingSource的CurrentChanged,CurrentItemChanged事件,那么您的B.O.上不需要额外的IsChanged属性 . ..,底层数据源也可以表示已修改 - 例如,如果绑定到数据表的BindingSource,该行将为您提供修改后的标志 .
您可以像这样获取所选的单元格值
如果你想要String形式的值只是使用像这样的ToString()方法
这应该做到这一点
DataGridViewRow.DataBoundItem
包含它绑定的'business'对象 .这是我的代码把它放到你的Person类中
这是一个更新按钮点击
这个怎么样?
我们可以获得多个选定的行数据 .