我想将所选行移到旁边的列表视图中。源列表视图具有FullRowSelect = true和MultiSelect = false。源列表视图通过数据库中的数据表填充。
这是我到目前为止所拥有的。它仅移动所选项目。我想让它移动整个选定的行。
private static void MoveSelectedItems(ListView source, ListView target)
{
for (int i = 0; i < source.Items.Count; i++)
{
if (source.Items[i].Selected)
{
target.Items.Add(source.Items[i]);
}
}
}
当我运行代码时会发生这种情况。
答案 0 :(得分:1)
首先,由于您已将MultiSelect
设置为false,因此您不需要循环来迭代所有项目。
其次,移动部分很简单。您获取所选项目并将其添加到目标项目中。由于您正在移动,而不仅仅是复制,我们还将从源列表视图中删除该项目。
private static void MoveSelectedItems(ListView source, ListView target)
{
if(source.SelectedItems.Count > 0)
{
ListViewItem selectedItem= source.SelectedItems[0];
foreach (var subItem in source.SelectedItems[0].SubItems)
{
selectedItem.SubItems.Add (subItem);
}
source.Items.Remove(selectedItem);
target.Items.Add(selectedItem);
}
}