我的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
列添加新类别?
答案 0 :(得分:1)
最后我自己解决了。我实现了LostFocus
的{{1}}事件,我在其中添加了使用新项更新绑定comboBox
的代码。
项目已成功添加,但仍有一个问题仍然存在。添加后,项目未被选中。 DataSet
仍然会重置以前的选择。但是,我可以手动选择新项目。但是,如果你能解决这个问题,它将成为用户更好的用户体验。以下是我如何实现新项目添加:
ComboBox