【发布时间】:2016-05-17 16:53:04
【问题描述】:
我有一个通过BindingSource 绑定到DataTable 的DataGridView,并且我的网格有用户输入值的可编辑列,还有一些以编程方式实时更新的只读列(想想就像股票行情一样)。对于以编程方式更新的列,我正在更新 DataTable 中的值,然后由于数据绑定而更新 DataGridView 中的值。
我遇到的问题是,当用户编辑一个单元格时,如果以编程方式更新另一个单元格,则用户在第一个单元格中输入的文本会被覆盖(在编辑之前重置为单元格的值)。
这对我来说似乎不是什么不寻常的情况,但我似乎无法让它正常工作。任何人都知道我可能做错了什么,或者可以指出一个示例来说明如何正确执行此操作?
【问题讨论】:
-
程序化更新的列,这是在计时器中发生还是如何发生?我认为您需要在用户编辑时禁用以编程方式更新,因为它看起来像是更新了整个记录,因此重置了用户输入的任何内容。您可能会考虑不使用绑定来填充您的数据网格视图,而是自己完成所有操作,这样您就可以控制哪些单元格被编程更新而哪些不是。
-
我没有开发系统的那部分,但我相信有一个后台线程一直在等待从 PUSH 服务器接收 PUSH 更新,然后当它收到更新时它会调用一个方法在 UI 线程上更新相应的 DataTable。
标签: c# winforms data-binding datagridview datagrid