将DataGridView.SelectedRows用作另一个DataGridView的DataSource

时间:2015-06-11 09:26:11

标签: c# winforms datagridview

我想将一个DataGridView中用户选择的行用作第二个DataGridView的DataSource。请注意,两个DataGridViews都具有相同的列。

显然,我可以迭代选定的行,获取键值,并重新查询数据库以获取List作为第二个网格的DataSource,但这似乎很蹩脚。

当然,有一种简单的方法可以简单地将SelectedRows集合重新用作数据源吗?

3 个答案:

答案 0 :(得分:2)

您无法直接将DataRow的集合设置为数据源,您可以从MSDN

中了解更多详情

做(位)传统方式怎么样?

var dt = ((DataTable)dataGrid1.DataSource).Clone();

foreach (DataGridViewRow row in dataGrid1.SelectedRows)
{
     dt.ImportRow(((DataTable)dataGrid1.DataSource).Rows[row.Index]);
}

dt.AcceptChanges();

dataGrid2.DataSource = dt;

答案 1 :(得分:0)

使用CopyToDataTable method执行此操作的另一种方法。

true

答案 2 :(得分:0)

感谢您的回复。似乎没有一种非常简单的方法。

我是这样做的:

MyDatGridView.SelectedRows.Cast<DataGridViewRow>().Select(dgvr => (int)dgvr.Cells[0].Value).ToList());

然后我尝试在.Where子句中使用带有.Contains的结果List。