我在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>

07-28 13:10