如何将MenuItem从一个ContextMenu复制到另一个ContextMenu

时间:2012-07-05 15:30:47

标签: c# wpf contextmenu menuitem

如何复制我在一个ContextMenu中创建的MenuItem并复制它以便我可以在第二个ContextMenu中使用它?

我试图直接复制并删除它,但我得到 Element已经有一个逻辑父。在将旧父级附加到新父级之前,必须将其与旧父级分离。

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

我尝试使用ItemContainerGenerator抓取MenuItem,它给了我一个空白的MenuItem(调试器说它是null)

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

1 个答案:

答案 0 :(得分:3)

根据您的错误消息,我希望这可以工作(虽然我还没有测试过):

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