来自资源时wpf子菜单不工作

来自资源时wpf子菜单不工作,wpf,menuitem,submenu,Wpf,Menuitem,Submenu,我想使用资源中定义的wpf菜单项作为菜单和子菜单。当作为一个普通菜单使用时,它可以工作,但我不能使它在子菜单上工作 下面是一个示例代码: <Grid Background="Transparent"> <Grid.Resources> <x:Array Type="{x:Type sys:Object}" x:Key="Extensions"> <Separator />

我想使用资源中定义的wpf菜单项作为菜单和子菜单。当作为一个普通菜单使用时,它可以工作,但我不能使它在子菜单上工作

下面是一个示例代码:

    <Grid Background="Transparent">

    <Grid.Resources>
        <x:Array Type="{x:Type sys:Object}" x:Key="Extensions">
            <Separator />
            <MenuItem Header="Extension MenuItem 1" />
            <MenuItem Header="Extension MenuItem 2" />
            <MenuItem Header="Extension MenuItem 3" />
        </x:Array>
    </Grid.Resources>

    <Grid.ContextMenu>
        <ContextMenu>
            <ContextMenu.ItemsSource>
                <CompositeCollection>
                    <MenuItem Header="Standard MenuItem 1" />
                    <CollectionContainer Collection="{StaticResource Extensions}" />
                    <MenuItem Header="Extension" >
                        <CollectionContainer Collection="{StaticResource Extensions}" />
                    </MenuItem>
                </CompositeCollection>
            </ContextMenu.ItemsSource>
        </ContextMenu>
    </Grid.ContextMenu>

</Grid>

我得到的结果是:

有人能给我正确的wpf语法吗


Tia

您需要指定
ItemSource
并正确绑定资源:

<MenuItem Header="Extension" >
   <MenuItem.ItemsSource>
    <CompositeCollection>
     <CollectionContainer Collection="{Binding Source={StaticResource Extensions}}"  />
    </CompositeCollection>
   </MenuItem.ItemsSource>
</MenuItem>

完美。仅缺少itemsSource和CompositeCollection。装订是正确的。