我有几个使用项目列表作为来源的数据网格。当我单击按钮或双击显示项目的行中的任何单元格时,当我选择网格中的项目时,我想将项目从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);
}
}
我的问题的解决方案并不一定要遵循我尝试使用的模式,任何有效的方法都会受到高度赞赏,提前谢谢。
答案 0 :(得分:0)
1)如果您不允许用户重新排序项目,请使用所选行的索引。它会快得多。
2)你的其余过程是正确的。但是,您忘记将datagrids重新绑定到新列表。网格不会自动更新其UI。
小伪示例:
var item = List1[grid1.currentrow.index];
List1.Remove(item);
List2.Add(item);
Grid1.datasource=list1;
Grid2.datasource=list2;