选择数据绑定组合框中的项目

时间:2011-09-07 14:39:57

标签: c# combobox databound

我相信这个问题有点新鲜,但我无法以正确的方式解决。

简要说明:

  1. 我继承自ComboBox类,它在构造函数中执行一些数据绑定:
  2.     var mdl = new Model();
    
        ValueMember = "id";
        DisplayMember = "unit";
        DataSource = mdl.getUnits();
    

    这里一切都很好。组合框由所需数据填充。

    1. 然后我有另一个带有editIngridient函数的表单。该功能如下;
    2.     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;
          }
      
      1. 现在,当表单弹出,文本框和数字框填充所需的值时,组合框由第一个值填充。

      2. 如果我将组合框数据绑定函数作为editIngridient函数内的第一行运行 - 一切正常。

      3. 请指出我的愚蠢。

        非常感谢!

1 个答案:

答案 0 :(得分:0)

你没有说你的dataSource是什么,但我认为这是DataTable,所以你可以这样做:

DataRowView rowData = comboBox1.SelectedItem as DataRowView;
int id = Convert.ToInt32(rowData["id"]);
string name = rowData["unit"].ToString();