我相信这个问题有点新鲜,但我无法以正确的方式解决。
简要说明:
var mdl = new Model(); ValueMember = "id"; DisplayMember = "unit"; DataSource = mdl.getUnits();
这里一切都很好。组合框由所需数据填充。
public bool editIngridient(int id) { currentId = id; var row = mdl.getIngridient(id); txtIngridient.Text = (string)row["ingridient"]; cmbUnit.ID = (int)row["unitId"]; numNotifyQty.Value = (int) row["notifyQty"]; ShowDialog(); return true; }
现在,当表单弹出,文本框和数字框填充所需的值时,组合框由第一个值填充。
如果我将组合框数据绑定函数作为editIngridient函数内的第一行运行 - 一切正常。
请指出我的愚蠢。
非常感谢!
答案 0 :(得分:0)
你没有说你的dataSource是什么,但我认为这是DataTable,所以你可以这样做:
DataRowView rowData = comboBox1.SelectedItem as DataRowView;
int id = Convert.ToInt32(rowData["id"]);
string name = rowData["unit"].ToString();