在数据绑定时检索 datagridviewcombobox 后面的数据行
我有一个数据绑定 DataGridView。它的列之一是 DataGridViewComboBox。 DataGridViewComboBox 也是数据绑定的。一切工作正常,直到我希望检索 DataGridViewComboBox 所选项目后面的 DataRow(不是 DataGridView 的 DataRow,而是填充组合框的 DisplayMember 和 ValueMember 的数据行!)。
我怎样才能做到这一点?我需要这个,因为我需要在 DisplayMember 和 ValueMember 旁边显示一大堆数据,并且这些数据存在于 DataGridViewComboBox 绑定到的 DataTable 的数据行内。
感谢您提前提供的帮助。
丹尼尔
I have a databound DataGridView. One of its columns is DataGridViewComboBox. The DataGridViewComboBox is also databound. Everything is working just fine until I wish to retrieve the DataRow behind the DataGridViewComboBox selected item (not the DataRow of the DataGridView but the datarow that fills the combobox's DisplayMember and ValueMember!).
How can I accomplish this? I need this because I need to display a whole bunch of data beside DisplayMember and ValueMember and this data is present inside the datarow of the DataTable to which the DataGridViewComboBox is bound.
Thanks for your kind help in advance.
Daniel
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这篇 MSDN 文章对此进行了详细介绍。
您需要做的是将 ComboBox 列的 ValueMember 设置为返回对业务对象本身的引用的属性。
也就是说,假设您有一个 Employee 对象,并且它们的列表是 ComboBox 列的数据源。 Employee 可能看起来像这样:
然后您像这样创建 ComboBox 列:
然后,当您检索 ComboBox 单元格的 Value 属性时,您会得到一个 Employee 对象:
This is detailed in this MSDN article.
What you need to do is set the ValueMember of the ComboBox column to a property that returns a reference to the business object itself.
That is, say you have an
Employee
object, and a list of them are the DataSource for the ComboBox column. Employee would perhaps look like this:Then you create your ComboBox columns like so:
Then when you retrieve the Value property of a ComboBox cell you get an Employee object back: