2012-07-05 47 views
4

如何複製我在一個ContextMenu中創建的MenuItem並複製它,以便我可以在第二個ContextMenu中使用它?如何將MenuItem從一個ContextMenu複製到另一個ContextMenu

我試圖直接複製並刪除它,但我得到元素已經有一個邏輯父項。它必須在與新父母連接之前從舊父母分離。

foreach(MenuItem mi in menuOptions.Items) { 
    entityRightClick.Items.Add(mi); 
    menuOptions.Items.Remove(mi); 
} 

我嘗試使用ItemContainerGenerator抓住了菜單項,它給了我一個空白的菜單項(調試器說,這是空)根據你的錯誤消息

for(int i = 0; i < menuOptions.Items.Count; i++) { 
    MenuItem temp = new MenuItem(); 
    temp = menuOptions.ItemContainerGenerator.ContainerFromIndex(i) as MenuItem; 
    entityRightClick.Items.Add(temp); 
} 

回答

3

,我期望這工作(雖然我沒有測試過):

foreach(MenuItem mi in menuOptions.Items) 
{  
    menuOptions.Items.Remove(mi); 
    entityRightClick.Items.Add(mi); 
} 
+0

這給了我'System.InvalidOperationException:集合被修改;枚舉操作可能無法執行。「當我這樣做。 – 2012-07-05 16:43:42

+0

doh!當然,因爲foreach循環:)所以這樣做:List items = new List (menuOptions.Items); menuOptions.Items.Clear; (項目中的MenuItem mi){entityRightClick.Items.Add; } //對不起,格式爲 – Kell 2012-07-05 16:48:41

+1

將menuOptions改爲List 會更容易嗎?它是否將MenuItems綁定到列表,就像它對ContextMenu一樣? – 2012-07-05 16:54:21

相關問題