触发绑定到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()对我有用。