如何通过选择数据网格中的项目将项目从一个列表移动到另一个列表

本文关键字:项目 列表 另一个 一个 移动 数据 选择 何通过 数据网 网格 | 更新日期: 2023-09-27 18:27:44

我有几个数据网格,它们使用项目列表作为源。当我单击按钮或双击显示该项目的行中的任何单元格时,选中网格中的项目时,我希望将该项目从列表1移动到列表2。此过程将删除第一个列表中的选定项目,并将其添加到第二个列表中(它将从网格中消失,并添加到链接到第二列表的另一个网格中)。两个列表中的项都是同一类的一部分,并且都使用相同的构造函数,因此它们的所有参数都是相同的。我一直在网上四处寻找,自己尝试不同的东西,但我找不到解决方案,到目前为止,这就是我想出的,但我无法实现。

public void Gladiators_Data_Grid_CellContentClick(对象发送方,DataGridViewCellEventArgs e){string ItemMoving=
Data_Grid.Rows[e.RowIndex].Cells[0].Value.ToString();

        var item = List1.FirstOrDefault(x => x.Name == ItemMoving);
        if (item != null)
        {
            List1.Remove(item);
            List2.Add(item);
        }
    }

我的问题的解决方案不必遵循我尝试使用的模式,任何有效的方法都将受到高度赞赏,提前感谢。

如何通过选择数据网格中的项目将项目从一个列表移动到另一个列表

1)如果不允许用户重新排序项目,请使用所选行的索引。它会快得多。

2) 剩下的过程是正确的。但是,您忘记了将数据网格重新绑定到新列表。网格不会自动更新其UI。

小型伪示例:

var item = List1[grid1.currentrow.index];
List1.Remove(item);
List2.Add(item);
Grid1.datasource=list1;
Grid2.datasource=list2;