将菜单项绑定到列表

本文关键字:列表 绑定 菜单项 | 更新日期: 2023-09-27 18:02:07

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

List<string> namesStorage;

我如何将这个列表绑定为XAML中的集合?
现在我已经写了这一部分,它已经工作了:

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

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

将菜单项绑定到列表

设置正确的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>

Edit:删除Parent-Stackpanel