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

时间:2015-12-22 23:29:55

标签: c# list datagrid itemssource

我有几个使用项目列表作为来源的数据网格。当我单击按钮或双击显示项目的行中的任何单元格时,当我选择网格中的项目时,我想将项目从list1移动到list2。此过程将删除第一个列表中的所选项目,并将其添加到第二个列表中(它将从网格中消失并添加到链接到第二个列表的另一个网格)。 两个列表中的项都是同一个类的一部分,并且都使用相同的构造函数,因此它们的所有参数都是相同的。 我一直在寻找互联网,并尝试不同的东西,但我找不到解决方案,到目前为止,这是我想出来的,但我不能让它工作。

public void Gladiators_Data_Grid_CellContentClick(object sender,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 个答案:

答案 0 :(得分:0)

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

2)你的其余过程是正确的。但是,您忘记将datagrids重新绑定到新列表。网格不会自动更新其UI。

小伪示例:

var item = List1[grid1.currentrow.index];

List1.Remove(item);
List2.Add(item);

Grid1.datasource=list1;
Grid2.datasource=list2;