5

在我的 .NET/Forms 应用程序中,我有一个绑定到 DataTable 的 DataGridView。用户通过双击选择 DataGridView 的一行并与应用程序进行一些交互。之后,该行的内容以编程方式更新。

当用户选择新行时,框架会自动将前一行的更改传播到 DataTable。如何从我的代码中触发此更新,以便用户不必选择新行?

4

3 回答 3

4

我刚遇到同样的问题,在这里找到了答案:

当用户离开该行时,控件提交所有行更改。用户还可以按 CTRL+ENTER 来提交行更改而不离开行。要以编程方式提交行更改,请调用表单的 Validate 方法。如果您的数据源是 BindingSource,您还可以调用 BindingSource.EndEdit。

调用 Validate() 对我有用。

于 2008-09-17T00:04:09.050 回答
0

I guess it depends on what triggers the update to take place, if it is in a validation routine you could simply call that after the user clicks OK on editing the data. Your question is vague it would be easier to answer with more information. What is this interaction? Is it a dialog? What actually updates the data?

于 2008-09-16T14:54:49.170 回答
0

以下是澄清这一点的过程:

  1. 用户双击行
  2. 应用程序从 db 中获取数据,处理获取的数据并在与 DataGridView 相同的表单上填充控件
  3. 用户与控件交互并最终在同一个表单上按下应用按钮
  4. 应用程序处理控件的状态,将数据写入 db 并将数据写入 DataGridView

  5. IF 用户在 DataGridView 上移动选择

  6. THEN 更改传播到绑定的 DataTable

从我的代码修改 DataGridView 后,我想立即触发 6。

于 2008-09-16T16:24:19.517 回答