我有一个数据绑定DataGridView。其中一个列是DataGridViewComboBox。 DataGridViewComboBox也是数据绑定。一切正常,直到我希望检索DataGridViewComboBox 所选项后面的DataRow(不是DataGridView的DataRow,而是填充组合框的DisplayMember和ValueMember的数据行!)。
我怎样才能做到这一点?我需要这个,因为我需要在DisplayMember和ValueMember旁边显示一大堆数据,这些数据存在于DataGrid接入的DataTable的数据行中。
感谢你提前得到你的帮助。
丹尼尔
答案 0 :(得分:1)
您需要做的是将ComboBox列的ValueMember设置为返回对业务对象本身的引用的属性。
也就是说,你有一个Employee
对象,它们的列表是ComboBox列的DataSource。员工可能看起来像这样:
public Employee
{
int Age { get; set; }
string Name { get; set;}
Employee Self
{
get { return this; }
}
}
然后你就像这样创建你的ComboBox列:
DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn();
col.Name = "Combo";
col.ValueMember = "Self";
col.DisplayMember = "Name";
datagridview1.Columns.Add(col);
然后,当您检索ComboBox单元格的Value属性时,您将获得一个Employee对象:
Employee e = datagridview1.Rows[0].Cells["Combo"].Value as Employee;