WPF ContextMenu with ItemsSource-如何绑定到每个项目中的命令?
可能重复:WPF ContextMenu with ItemsSource-如何绑定到每个项目中的命令?,wpf,binding,command,contextmenu,Wpf,Binding,Command,Contextmenu,可能重复: 我有一组表示菜单项的对象(viewmodels)。每个菜单项都有一个命令,我希望在单击菜单项时执行该命令 如果我想静态地创建菜单,我会这样做: <ContextMenu> <MenuItem Header="{Binding Text1}" Command={Binding Command1}> <MenuItem Header="{Binding Text2}" Command={Binding Command2}> </
我有一组表示菜单项的对象(viewmodels)。每个菜单项都有一个命令,我希望在单击菜单项时执行该命令 如果我想静态地创建菜单,我会这样做:
<ContextMenu>
<MenuItem Header="{Binding Text1}" Command={Binding Command1}>
<MenuItem Header="{Binding Text2}" Command={Binding Command2}>
</ContextMenu>
但是,当我事先不知道这些项(它们来自一个集合)时,我需要分配ContextMenu.ItemsSource,并将文本放入ItemTemplate中
<ContextMenu ItemsSource="{Binding MyMenuItems}">
<ContextMenu.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Text2}" /> <!-- But where to put Command binding? TextBlock.Command makes no sense, and we have no access to MenuItem! -->
</DataTemplate>
</ContextMenu.ItemTemplate>
</ContextMenu>
然而,通过这种方式,我没有地方绑定命令——因为我无法获得每一行的菜单项
有什么建议吗?谢谢大家
<ContextMenu.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Command" Value="{Binding AssociatedCommand}" />
</Style>
</ContextMenu.ItemContainerStyle>
其中AssociatedCommand是保存ICommand的viewmodel对象上的属性。谢谢,我在链接线程中已经找到了相同的答案…如何分离两个菜单项的命令。如何分离多个菜单项的命令?让我们说“添加”和“删除”。的副本。