1

EF 4、C#WinForms、およびNorthwindデータベースを使用して、データグリッドをOrdersエンティティにバインドし、実行時に新しいComboboxcolumを作成しました。

    Entities NW;
    private void Form1_Load(object sender, EventArgs e)
    {
        NW = new Entities();
        BindingSource1.DataSource = NW.Orders;

        DataGridViewComboBoxColumn CboCol = new DataGridViewComboBoxColumn()
        {
            HeaderText = "Customer",
            DataPropertyName = " Customer ID",
            DataSource = NW.Customers.Execute(MergeOption.AppendOnly),
            ValueMember = "CustomerID",
            DisplayMember = "CompanyName"
        };
        Datagriview1.Columns.Insert(1, CboCol);
    }

上記のコードで、datagridviewの値を変更して行を削除することに成功しましたが、[+]ボタン([新規追加])をクリックしても新しい行を追加できませんでした。エラー:「datagridviewcombocellは有効な値ではありません」。何かアイデアはありますか?

4

1 に答える 1

0

DataGridViewComboBoxColumn をデータにバインドするため、null 値を含む新しい行を追加すると、データ ソースに見つからないため、有効な値ではないことが表示されます。

私の提案は、新しいレコードを DataGirdViewComboBox に直接追加するのではなく、コンボ ボックスにバインドするデータ ソースを追加することです。DataGridViewComboBox をデータ ソースからバインドするときは、常に読み取り専用にしておくことをお勧めします。

于 2012-05-17T02:47:29.900 に答える