如何通过更新C#中绑定的DataTable来顺利更新GridView?

时间:2009-03-10 16:30:16

标签: c# winforms gridview datatable datasource

我有一个GridView DataSource被设置为DataTable。每隔几秒就会通过一些后端逻辑更新DataTable,此时会调用一个委托来刷新GridView

目前我只是重置DataSource,但这会导致问题 - 它会中断网格视图中正在进行的任何编辑,并使选择“跳转”到左上角的单元格。

更新逻辑基本上创建一个新的(与列和行相同)DataTable

有没有任何标准方法可以做到没有任何缺点?我是唯一一个逐行更新当前DataSource,以编程方式插入值的选项吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

您应该使用支持更改通知的BindingList或某些数据源。

答案 1 :(得分:1)

我对这个问题中的许多事情感到困惑。如果您使用的是GridView而不是DataGridView,那么您使用的是ASP.NET,WPF或.NET 1.1。这是什么?

下一步:您是否完全创建了新的DataTable?当然,重置DataSource时控件将重置。它不知道您的新DataTable的架构与它所替换的架构相同。它必须通过列并重新建立绑定。

此外,当然它正在丢失当前行。当前行属于旧DataTable,而不是新行。

如果您希望绑定控件在更新基础数据源时保持其状态,更新基础数据源,请不要将其替换为新数据源。

答案 2 :(得分:0)

您的更新是否在后台线程上进行?我不知道它是否适用于你的场景,但你可以尝试这个threaded binding list;看到示例,看工人快乐地编辑网格。

相关问题