gpt4 book ai didi

wpf - 如何将命令绑定(bind)到 MenuItem (WPF)?

转载 作者:行者123 更新时间:2023-12-04 04:06:25 25 4
gpt4 key购买 nike

这是我在 View.xaml.cs 中的代码:

private RelayCommand _closeCommand;
public ICommand CloseCommand
{
get
{
if (_closeCommand == null)
{
_closeCommand = new RelayCommand(param => this.OnClose());
}
return _closeCommand;
}
}

public void OnClose()
{
Close();
}

这是我的 View.xaml 中的一些代码:
<Window.ContextMenu>
<ContextMenu>
<MenuItem Name="menuItem_Close" Header="Close" Command="{Binding CloseCommand}" />
</ContextMenu>
</Window.ContextMenu>

当我运行程序并选择关闭菜单项时,什么也没有发生。 CloseCommand 代码甚至没有被执行。

最佳答案

ContextMenu不是 VisualTree 的一部分,这就是 DataContext 的原因不会被继承。这里 ContextMenu.PlacementTarget 是某种继电器来获得 Window :

<MenuItem Name="menuItem_Close" Header="Close"
Command="{Binding Path=PlacementTarget.DataContext.CloseCommand, RelativeSource={RelativeSource AncestorType=ContextMenu}}" />

关于wpf - 如何将命令绑定(bind)到 MenuItem (WPF)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13826504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com