2013-03-13 47 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