2011-03-14 46 views
0

给定一个名为“主”菜单,我想写的标记类似如下:数据绑定的ContextMenu的MenuItems到现有的菜单的的MenuItems

<Window.ContextMenu> 
    <ContextMenu ItemsSource="{Binding ElementName=main, Path=Items}" /> 
</Window.ContextMenu> 

这不工作 - 它似乎创建一个空的文本菜单。

这是菜单的标记:

<Menu Name="main" Grid.ColumnSpan="2" FontSize="14" DockPanel.Dock="Top" HorizontalAlignment="Stretch"> 
    <MenuItem Header="_File"> 
     <MenuItem Header="_Exit" Command="Close" /> 
    </MenuItem> 
    <MenuItem Header="_Options"> 
     <MenuItem Header="_Show status bar" IsCheckable="True" /> 
     <MenuItem Header="_Group numbers" IsCheckable="True" /> 
    </MenuItem> 
<MenuItem Header="_About" /> 

+0

你可以发布包含“main”的XAML吗? – thumbmunkeys 2011-03-14 07:28:58

+0

我目前没有和我在一起。有关系吗? “main”是带有MenuItems的菜单,并且显示正确。 – 2011-03-14 07:50:39

回答

0

解决方案here足以满足我的需求,即使它不使用数据绑定,但的菜单项的数组作为一种资源。

从理论上讲,知道这是否可能是有可能的。

+0

这是不可能的。 MenuItem是一个FrameworkElement对象。因此它只有一个逻辑父项。它不能同时具有菜单和上下文菜单作为其父项。每次引用资源时,链接中的解决方案都会生成一组菜单项,因此不会在菜单之间共享菜单项。 – Alex 2011-03-15 09:21:14