2011-03-14 53 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