2013-03-13 76 views
0

到listview2我想知道如何从ListView1的复制双击项目listview2,到目前为止,我使用了上ListView1的鼠标双击这个代码点击事件。C#复制/移动项目与数量

foreach (ListViewItem item in lvItemlist.SelectedItems) 
     { 
      lvItemBuy.Items.Add((ListViewItem)item.Clone()); 
     } 

当我加倍对项目点击了解所选项目的我listview2其副本的一切,反正这是不是真的是我want..lets在我ListView1的说我得到了这个项目:

ID | ITEMNAME | QUANTITY 
1 | ITEM1 | 100 

我要的是每次我在项目上ListView1的双击,数量应在1下降,所以这将是这样的ListView1的:

ID | ITEMNAME | QUANTITY 
1 | ITEM1 | 99 

然后用1个数量这样添加所选项目到listview2

ID | ITEMNAME | QUANTITY 
1 | ITEM1 | 1 

后再次双击同一个项目,它做同样的事情上ListView1的,但我不希望它复制listview2上的项目。只需+1数量。有没有办法做到这一点?

回答

0

有很多方法可以做到这一点。你可以为listviewItems引入Id。不要直接关闭ListViewItem,而是编写一个将属性从第一个listviewitem复制到第二个的方法。在这种方法中,您可以减少数量并检查所选列表视图是否已经在第二个列表视图中。

0

有两种不同的方法。

如果您想将项目复制从ListView1的到listview2:

private static void CopySelectedItems(ListView source, ListView target) 
{ 
    foreach (ListViewItem item in source.SelectedItems) 
    { 
     target.Items.Add((ListViewItem)item.Clone()); 
    } 
} 

如果要移动的项目从ListView1的到listview2:

private static void MoveSelectedItems(ListView source, ListView target) 
{  
    while (source.SelectedItems.Count > 0) 
    { 
     ListViewItem temp = source.SelectedItems[0]; 
     source.Items.Remove(temp); 
     target.Items.Add(temp); 
    }    
} 
+0

谢谢您的回答,但是这不是正是我想要的...复制东西会复制包括数量在内的整个东西,所以数量在listview1和listview2上保持不变。移动的东西会将整个选定的东西从listview1移除到listview2 – 2013-03-13 07:25:08