【问题标题】:wpf submenu not working when coming from resources来自资源时 wpf 子菜单不起作用
【发布时间】:2016-05-02 05:29:59
【问题描述】:

我想使用在资源中定义的 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 语法?

蒂亚

【问题讨论】:

    标签: wpf menuitem submenu


    【解决方案1】:

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

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

    【讨论】:

    • 完美。只有 itemsSource 和 CompositeCollection 丢失了。绑定正确。
    猜你喜欢
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多