[英]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.