在我的 .NET/Forms 应用程序中,我有一个绑定到 DataTable 的 DataGridView。用户通过双击选择 DataGridView 的一行并与应用程序进行一些交互。之后,该行的内容以编程方式更新。
当用户选择新行时,框架会自动将前一行的更改传播到 DataTable。如何从我的代码中触发此更新,以便用户不必选择新行?
在我的 .NET/Forms 应用程序中,我有一个绑定到 DataTable 的 DataGridView。用户通过双击选择 DataGridView 的一行并与应用程序进行一些交互。之后,该行的内容以编程方式更新。
当用户选择新行时,框架会自动将前一行的更改传播到 DataTable。如何从我的代码中触发此更新,以便用户不必选择新行?
我刚遇到同样的问题,在这里找到了答案:
当用户离开该行时,控件提交所有行更改。用户还可以按 CTRL+ENTER 来提交行更改而不离开行。要以编程方式提交行更改,请调用表单的 Validate 方法。如果您的数据源是 BindingSource,您还可以调用 BindingSource.EndEdit。
调用 Validate() 对我有用。
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?
以下是澄清这一点的过程:
应用程序处理控件的状态,将数据写入 db 并将数据写入 DataGridView
IF 用户在 DataGridView 上移动选择
THEN 更改传播到绑定的 DataTable
从我的代码修改 DataGridView 后,我想立即触发 6。