DataGridView ComboBox列不接受新值

时间:2016-04-17 16:31:27

标签: c# .net winforms datagridview combobox

我的Windows窗体应用程序中有一个DataGridView控件,允许用户编辑产品列表。要编辑产品类别,我希望用户添加新条目或从之前输入的条目中进行选择。为此,我添加了comboBox列绑定到DataSource的列,该列从products表中获取不同的类别名称。在其他一些SO问题的帮助下,我可以使用此代码编辑comboBox

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
    if (dataGridView1.CurrentCell.ColumnIndex == CategorySelector.Index)
    {
        ComboBox combo = e.Control as ComboBox;
        if (combo == null)
            return;
        combo.DropDownStyle = ComboBoxStyle.DropDown;
    }
}

但问题是,当我尝试编辑类别comboBox列并添加列出的新类别时,当我切换到其他单元格时,它会切换回现有产品的旧类别项目或空白对于新产品。请告诉我如何通过此comboBox列添加新类别?

1 个答案:

答案 0 :(得分:1)

最后我自己解决了。我实现了LostFocus的{​​{1}}事件,我在其中添加了使用新项更新绑定comboBox的代码。

项目已成功添加,但仍有一个问题仍然存在。添加后,项目未被选中。 DataSet仍然会重置以前的选择。但是,我可以手动选择新项目。但是,如果你能解决这个问题,它将成为用户更好的用户体验。以下是我如何实现新项目添加:

ComboBox