如何将行从绑定到DataGridView的一个BindingList复制到另一个DataGridView和BindingList

时间:2019-04-29 07:58:58

标签: c# datagridview bindinglist

我正在处理一个包含零件清单和产品清单的库存项目。每个产品必须至少具有一个与之关联的部件。零件列表位于BindingList中,它是多个DataSource的{​​{1}},并且有一个单独的DataGridView是相关零件的BindingList 。我需要选择一个DataSource中选中的一行(一部分),然后单击按钮将整行复制到另一DGV中。

我使用了“ 1BestCsharp博客”“ C#教程-如何将Datagridview检查的行分配到另一个DataGridView [带有源代码]” YouTube视频(https://www.youtube.com/watch?v=ErrVyyogKCQ&list=PLFDH5bKmoNqyDKntkVv-NURTAlPIhMPqA&index=19),但是出现运行时错误。我没有记下错误,但是它说由于设置了DGV,所以无法使用该视频中的代码。

我还查看了How to Copy Contents in one DataGridview to another DataGridview中的C#代码,但这似乎更适合将整个DataSource复制到另一个DGV,这不是我所需要的。

我的DGV配置:

DGV

行选择代码:

dgvModProdAllPrtList.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            dgvModProdAllPrtList.DefaultCellStyle.SelectionBackColor = dgvModProdAllPrtList.DefaultCellStyle.BackColor;
            dgvModProdAllPrtList.DefaultCellStyle.SelectionForeColor = dgvModProdAllPrtList.DefaultCellStyle.ForeColor;
            dgvModProdAllPrtList.RowHeadersVisible = false;
            dgvModProdAllPrtList.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            dgvModProdAllPrtList.DataSource = Inventory.PartsList;
            dgvModProdAllPrtList.Columns[0].HeaderText = "Part ID";
            dgvModProdAllPrtList.Columns[1].HeaderText = "Part Name";
            dgvModProdAllPrtList.Columns[2].HeaderText = "Inventory";
            dgvModProdAllPrtList.Columns[3].HeaderText = "Price";
            dgvModProdAllPrtList.Columns[4].Visible = false;
            dgvModProdAllPrtList.Columns[5].Visible = false;

            dgvModProdAssociatedPrt.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            dgvModProdAssociatedPrt.DefaultCellStyle.SelectionBackColor = dgvModProdAssociatedPrt.DefaultCellStyle.BackColor;
            dgvModProdAssociatedPrt.DefaultCellStyle.SelectionForeColor = dgvModProdAssociatedPrt.DefaultCellStyle.ForeColor;
            dgvModProdAssociatedPrt.RowHeadersVisible = false;
            dgvModProdAssociatedPrt.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            dgvModProdAssociatedPrt.DataSource = Product.AssociatedParts;
            dgvModProdAssociatedPrt.Columns[0].HeaderText = "Part ID";
            dgvModProdAssociatedPrt.Columns[1].HeaderText = "Part Name";
            dgvModProdAssociatedPrt.Columns[2].HeaderText = "Inventory";
            dgvModProdAssociatedPrt.Columns[3].HeaderText = "Price";
            dgvModProdAssociatedPrt.Columns[4].Visible = false;
            dgvModProdAssociatedPrt.Columns[5].Visible = false;

我敢肯定有一种相当简单的方法可以做到这一点,但我不确定是什么。

0 个答案:

没有答案