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 与数据绑定,所以当您添加包含一些空值的新行时,在您的数据源中找不到,这就是为什么它提示您不是有效值

我的建议不是直接将新记录添加到 DataGirdViewComboBox 中,而是您绑定到组合框中的数据源。当您从数据源绑定 DataGridViewComboBox 时,最好始终将其保持为只读状态。

于 2012-05-17T02:47:29.900 回答