我在WPF中的命令绑定有问题。我有以下xaml:
<ItemsControl ItemsSource="{Binding Entity}" Name="Lst">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<Button Content="qwerty" Command="{Binding ElementName=Lst, Path=DataContext.SaveCommand}" >
<Button.ContextMenu>
<ContextMenu>
<MenuItem Header="Send2" Command="{Binding ElementName=Lst, Path=DataContext.SaveCommand}" />
</ContextMenu>
</Button.ContextMenu>
</Button>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
如您所见,Button及其ContextMenu具有相似的命令绑定。但是当我单击按钮时,它的命令被触发,而当我单击上下文菜单项时,它的命令不被触发。我哪里错了?提前致谢!
最佳答案
我之前也遇到过类似的问题,并通过将datacontext通过容器的tag属性传递来解决它,如下所示。我有它在网格ContextMenu上工作,但看不到任何不能在按钮上工作的原因。如果您有任何问题,请告诉我
<Button Content="qwerty" Tag="{Binding DataContext,ElementName=Lst}" Command="{Binding ElementName=Lst, Path=DataContext.SaveCommand}" >
<Button.ContextMenu>
<ContextMenu DataContext="{Binding PlacementTarget.Tag, RelativeSource={RelativeSource Self}}">
<MenuItem Header="Send2" Command="{Binding SaveCommand}" />
</ContextMenu>
</Button.ContextMenu>
</Button>