具有组合框列的数据网格 - 添加新错误

本文关键字:新错误 添加 错误 网格 数据网 组合 数据 | 更新日期: 2023-09-27 18:34:35

使用 EF 4、C# WinForms 和 Northwind 数据库,我将数据网格绑定到 Orders Entity,然后在运行时创建了一个新的 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 不是有效值"。有什么想法吗?

具有组合框列的数据网格 - 添加新错误

因为您将 DataGridViewComboBoxColumn 与数据绑定,所以当您添加包含一些 null 值的新行时,在您的数据源中找不到,这就是为什么它提示您不是有效值的原因

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