【问题标题】:vb.net datagrid view multiple Datasourcesvb.net datagrid 查看多个数据源
【发布时间】:2012-08-09 17:12:24
【问题描述】:

我有 4 个数据源要绑定到 datagridview,所以它会像

 datasource Me.DataGridView1.DataSource = Me.bindingSource1 'rows 0 to 500
 datasource Me.DataGridView1.DataSource = Me.bindingSource2 'rows 501 to 1000 
 datasource Me.DataGridView1.DataSource = Me.bindingSource3 'rows 1001 to 1500
 datasource Me.DataGridView1.DataSource = Me.bindingSource4 'rows 1501 to 2000

怎么办?

【问题讨论】:

  • bindingSources 是什么类型的?

标签: vb.net data-binding


【解决方案1】:

你不能。一个 DataGridView 一次只能有一个 DataSource。

我知道这与您之前尝试使用多个线程来更新网格的问题有关,但是如果您对使用多个线程写入网格一无所知,那么您将不得不锁定数据源才能执行更新。

【讨论】:

  • 但是每列怎么会有一个数据源呢?
  • 但是如果我要锁定它,使用线程是没有意义的!
  • @user1570048 组合框可以有自己的下拉列表数据源,但组合框的选定值来自网格的数据源。
  • @user1570048 but there is no point of using threads if i am going to lock it! 这就是我们一直想告诉你的。
  • 使用分页代替或处理任何事件以根据您要显示的数据将控件重新绑定到新数据源。
【解决方案2】:

如果你必须结合这些,那么你应该使用数据表的Merge 函数。

Dim aggregateTable as New DataTable("AggTbl")
aggregateTable.Merge(Me.bindingSource1)
aggregateTable.Merge(Me.bindingSource2)
aggregateTable.Merge(Me.bindingSource3)
aggregateTable.Merge(Me.bindingSource4)

Me.DataGridView1.DataSource = aggregateTable

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 2017-02-07
    • 2011-11-21
    • 2014-01-14
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多