我想使用自定义对象列表在菜单中生成MenuItems列表,但是在该菜单的底部,我希望始终显示几个静态MenuItems。从逻辑上讲,这可以通过以编程方式创建另一个要绑定的列表来完成,该列表始终将那些MenuItems放在底部,但这让我感到有些天真。我敢肯定,对于已经存在的列表以及一些XAML向导,可能还有某种DataTemplate,还有一种更优雅的方法。有指针吗?

最佳答案

就像McGarnagle所说的那样,您可以使用CompositeCollection。但是,您不需要为固定菜单项创建资源。您可以将它们直接放置在CompositeCollection中,如下所示:

<Menu>
    <Menu.ItemsSource>
        <CompositeCollection>
            <CollectionContainer Collection="{Binding Path=MyItems}" />
            <Separator/>
            <MenuItem Header="Fixed item 1" />
            <MenuItem Header="Fixed item 2" />
        </CompositeCollection>
    </Menu.ItemsSource>
</Menu>

关于c# - 通过绑定(bind)部分填充MenuItem,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17599584/

10-09 07:48