0

この質問はちょっと初心者だと思いますが、正しい方法で解決できません。

簡単な説明:

  1. コンストラクターでいくつかのデータ バインディングを行う ComboBox クラスから継承したものがあります。
    var mdl = 新しいモデル();

    ValueMember = "id";
    DisplayMember = "ユニット";
    DataSource = mdl.getUnits();

ここで大丈夫です。コンボボックスには必要なデータが入力されています。

  1. 次に、関数 editIngridient を持つ別のフォームがあります。関数は次のとおりです。
    public bool editIngridient(int id)
    {
    currentId = id;

    var 行 = mdl.getIngridient(id);

    txtIngridient.Text = (string)row["ingridient"];
    cmbUnit.ID = (int)row["unitId"];
    numNotifyQty.Value = (int) 行["notifyQty"];

    ShowDialog();

    true を返します。
    }
  1. 現在、フォームがポップアップすると、テキストボックスと数値ボックスに必要な値が入力され、コンボボックスには最初の値が入力されます。

  2. editIngridient 関数内の最初の行としてコンボボックス データ バインド関数を実行すると、すべてうまくいきます。

私の愚かさを指摘してください。

どうもありがとう!

4

1 に答える 1

0

あなたはあなたのデータソースが何であるかを言いませんでしたが、私はそれがデータテーブルであると仮定しているので、あなたはそれを行うことができます:

DataRowView rowData = comboBox1.SelectedItem as DataRowView;
int id = Convert.ToInt32(rowData["id"]);
string name = rowData["unit"].ToString();
于 2011-09-07T14:46:00.887 に答える