【发布时间】:2022-01-26 19:48:30
【问题描述】:
我有一个 DatagridView,它的 DataSource 是一个 DataTable。 当我在运行时更改单元格的值时,它似乎变化良好。
但是,如果我尝试通过单击 DatagridView 中的一行将 DataGridView 中的值分配给变量,则该变量将获取原始 (DataTable) 值,而不是单元格的值。
copy = DataGridView2.Item(7, i).Value
单元格列的 ReadOnly 属性为 false。
有什么建议吗?
【问题讨论】:
-
致电
Validate()或EndEdit()(取决于上下文),请参阅,例如,Bound DataGridView not updating to display information + sorting issues -
如果网格使用数据源,那么从技术上讲,如果单元格值发生更改,
DataSource应该会得到更新。你在哪里打电话copy = DataGridView2.Item(7, i).Value...? ......您能否提供一个minimal reproducible example 来重现您所描述的内容。 -
@Jimi 我已根据您的建议修改了我的代码。我有一个
BindigSource,其DataSource是DataTable。我的DataGridView的DataSource现在是BindingSource。CellValueChanged事件调用EndEdit()方法。不幸的是,旧值仍然被变量占用。可能是什么问题? -
您需要发布您的代码。重现您所描述的行为所需的所有代码。例如,旧值仍由变量获取:您何时在哪里读取此值? -- 请注意,在
CellValueChanged中调用EndEdit()应谨慎(可能有副作用);见那里的注释。当您希望立即应用特定值时,可以使用它。 -
感谢您的帮助,但与此同时我想出了一个可行的解决方案。
标签: vb.net datatable datagridview datasource