如何将MenuItem从一个ContextMenu复制到另一个ContextMenu
问题描述:
如何复制我在一个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);
}
答
,我期望这工作(虽然我没有测试过):
foreach(MenuItem mi in menuOptions.Items)
{
menuOptions.Items.Remove(mi);
entityRightClick.Items.Add(mi);
}
这给了我'System.InvalidOperationException:集合被修改;枚举操作可能无法执行。“当我这样做。 – 2012-07-05 16:43:42
doh!当然,因为foreach循环:)所以这样做:List
将menuOptions改为List会更容易吗?它是否将MenuItems绑定到列表,就像它对ContextMenu一样? –
2012-07-05 16:54:21