我有DataGridView
(AllowUserToAddRows = true, EditMode = EditOnKeystrokeOrF2
)绑定到BindingSource
(绑定到DataTable
)。
我的DataGridView
有一个ComboBoxColumn
我可以选择国家/地区。
DataGridView
AllowUserToAddRows
上有true
,因为用户应该可以通过从每个DataGridView
所拥有的空白“新行”中选择一个国家来添加行。
问题是每当我用鼠标点击空行时,它就会将新行添加到BindingSource
。但是,在您实际从前一个(点击的)新行中选择一个国家/地区之前,DataGridView
的新“空白”行不会显示。
因此,用户不知道他添加了新行。该行的DBNull.Value
为Country
,因为未选择任何内容。尝试保存时,会抛出错误,因为Country
不能为空。
因此,我需要阻止在从BindingSource
中选择值之前将新行添加到ComboboxColumn
。
我尝试RowValidating
- 在Country
为DBNull
时取消编辑的事件,但它阻止我离开新行。那不是我想要的。
基本上,我认为我有this问题,没有“结束表格”部分。
答案 0 :(得分:1)
'空白'存在于数据网格视图中的行只是用于添加新行,它在数据源中不存在,直到您实际单击该行为止。一旦你编辑了那个新行'区域和移动行,datagridview将添加另一个'新行'区域。我的建议是在保存之前添加一些验证,并排除任何未通过验证的行。
答案 1 :(得分:0)
在调用我的保存方法(在public static final int DAYS_IN_WEEK = 7
private NumberDisplay day
public String getCurrentDay()
上调用DataGridView
)之前让Update
失去焦点,使得空行从DataAdapter
消失。