繁体   English   中英

将菜单项绑定到列表

[英]Bind menu items to a list

我有一个包含菜单项名称的字符串列表:

List<string> namesStorage;

如何在XAML中将此列表绑定为集合?
现在我写了这是部分,已经有效:

<StackPanel Orientation="Vertical">
    <MenuItem Header="MenuItem1" Command="{Binding Command1}" />
    <MenuItem Header="MenuItem2" Command="{Binding Command1}" />
</StackPanel>

此项必须有一个命令(将在视图模型中设置不同的参数)。
但我认为这不是在XAML中设置每个MenuItem的好方法 - 现在可以用两个项目,但我想知道如何对任意数量的菜单项做出通用决定。 我创建了一个包含名称但是如何绑定它(并保留命令)的列表?

设置正确的DataContext后,这应该工作:

    <ItemsControl ItemsSource="{Binding namesStorage}" x:Name="ItemsControlName">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <MenuItem Header="{Binding}" Command="{Binding ElementName=ItemsControlName, Path=DataContext.Command1}"/>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>

编辑 :删除了Parent-Stackpanel,如评论中所示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM