c# - 在 BindingSource 中合并多个列表
问题描述
我正在使用 aBindingSource
来收集DataGridView
多个数据库调用的一些 s。
我想要做的是将 属性中的所有DataGridView
s合并为一个,这样我就可以使用..List
BindingSource
DataGridView.DataSource = BindingSource
我尝试了以下方法,但它只绑定集合本身而不是.List
属性。
BindingSource _bindingSource = new BindingSource();
...
...
while(<doing database calls>) {
// Populate _DataGridView with some a DB Call
_bindingSource.Add(_DataGridView); // Add _DataGridView to the _bindingSource
}
DataGrid.Datasource = _bindingSource;
我想要的是这样的
// Populate _bindingSource with the .List property/or all the items within _bindingSource
DataGrid.Datasource = _bindingSource[0] + _bindingSource[1] + ..
解决方案
DataSource
是object
。
因此,您需要了解更多有关您正在使用的实际 DS 的信息;那么你可以(也许使用合适的Cast<>
)Concat
(或Union
)各种枚举。
让我们看一个使用DataGridViews
that are bound to的简单示例DataTables
:
var twoDataSources = ((DataTable)dataGridView1.DataSource).Select()
.Concat(((DataTable)dataGridView2.DataSource).Select());
var twoDataSources = ((DataTable)dataGridView1.DataSource).Select()
.Union(((DataTable)dataGridView2.DataSource).Select());
第一个示例包含每个表中的每一行;秒包含所有唯一行。
如果您需要更多帮助,请添加创建数据源的实际代码。(当然它们必须是现场兼容的..)
推荐阅读
- r-markdown - 如何打印出由 rmarkdown 生成的页面的所有选项卡?
- kivy - kivy 启动器应用程序源代码的可用性
- unit-testing - 如何为一小时后的函数返回时间编写单元测试
- ios - Fastlane 注释掉字符串中的引号
- python - 会话 Selenium-Hub/Node-Chrome Docker 容器的套接字超时
- sas - 在本地执行 rsubmit 语句
- php - Laravel 5.6 使用策略授权操作
- ios - testFlight 出错 提供的数据有错误。请更正并重新提交。> 带有标识符的 App ID
- sql - 仅选择字符串 SQL Server 的一部分
- docker - 我是否需要任何代理才能使 FIWARE Orion Context Broker 可以看到 Context Provider?