触发绑定到DataGridView的DataTable的更新
时间:2020-03-05 18:56:05 来源:igfitidea点击:
在我的.NET / Forms应用中,我有一个绑定到DataTable的DataGridView。用户通过双击选择DataGridView的一行,并与该应用程序进行一些交互。之后,以编程方式更新行的内容。
当用户选择新行时,框架会将上一行的更改自动传播到DataTable。如何从我的代码中触发此更新,以便用户不必选择新行?
解决方案
回答
我猜这取决于触发更新发生的原因,如果它在验证例程中,则可以在用户单击"确定"以编辑数据后简单地调用它。问题含糊不清,可以通过更多信息轻松回答。这是什么互动?是对话吗?实际更新数据的是什么?
回答
这是澄清这一点的过程:
- 用户双击行
- 应用程序从db获取数据,处理获取的数据并以与DataGridView相同的形式填充控件
- 用户与控件进行交互,最后在同一表单上按下"应用"按钮
- 应用程序处理控件的状态,将数据写入db并将数据写入DataGridView
- 如果用户在DataGridView上移动选择
- 然后将更改传播到绑定的DataTable
我想从代码中修改DataGridView后立即触发6.
回答
我只是遇到了同样的问题,并在这里找到了答案:
When the user navigates away from the row, the control commits all row changes. The user can also press CTRL+ENTER to commit row changes without leaving the row. To commit row changes programmatically, call the form's Validate method. If your data source is a BindingSource, you can also call BindingSource.EndEdit.
调用Validate()对我有用。