0

Windowsフォーム内に記事が入力されたコンボボックスがあり、このコードを使用してそのコンボボックス内に名前のみを表示します

cmbArticleList.DataSource = GetAllArticles();
cmbArticleList.DisplayMember = "Name";

Articleonclickボタンを使用して、オブジェクト全体(プロパティ(Code、、Price...))をグリッドビューまたは同じフォームウィンドウ内の他のコントロールにコピーする方法がわかりません。

4

2 に答える 2

1

次のように、アーティクルのフォームでグローバル変数を宣言してみてください。

private List<Article> list;

したがって、リストを自分にバインドする前に、ComboBox最初にグローバルに定義されたリストに追加ValueMemberし、ComboBox特にPrimary Keyテーブルから a を追加して、次のような値を一意に識別します。

list = GetAllArticles();
cmbArticleList.DataSource = list; 
cmbArticleList.DisplayMember = "Name";
cmbArticleList.ValueMember = "Id";

したがって、をクリックするButtonと、リストから特定の記事を取得してDataGridView、たとえば次のように配置できます。

    private void button1_Click(object sender, EventArgs e)
    {

        Article selectedArticle = list.Where(Articleid => Articleid.Id == int.Parse(comboBox1.SelectedValue.ToString())).FirstOrDefault();
        DataGridViewRow row = (DataGridViewRow)dataGridView1.Rows[0].Clone();
        row.Cells[0].Value = selectedArticle.Id;
        row.Cells[1].Value = selectedArticle.Id2;
        row.Cells[2].Value = selectedArticle.Group;
        row.Cells[3].Value = selectedArticle.Code;
        row.Cells[4].Value = selectedArticle.Name;
        row.Cells[5].Value = selectedArticle.Price;
        dataGridView1.Rows.Add(row);
    }

ここで、これは、DataGridView6 つの列を持つ があることを前提としています。

于 2013-07-01T19:12:52.427 に答える