gpt4 book ai didi

WPF - 如果命令的 CanExecute 为 false,如何隐藏菜单项?

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

默认情况下,当菜单项的命令无法执行时(CanExecute = false),菜单项将被禁用。基于 CanExecute 方法使菜单项可见/折叠的最简单方法是什么?

最佳答案

感谢您的解决方案。对于那些想要显式 XAML 的人来说,这可能会有所帮助:

<Window.Resources>
<BooleanToVisibilityConverter x:Key="booleanToVisibilityConverter" />
</Window.Resources>

<ContextMenu x:Key="innerResultsContextMenu">
<MenuItem Header="Open"
Command="{x:Static local:Commands.AccountOpened}"
CommandParameter="{Binding Path=PlacementTarget.DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ContextMenu}}}"
CommandTarget="{Binding Path=PlacementTarget, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ContextMenu}}}"
Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource booleanToVisibilityConverter}}"
/>
</ContextMenu>

就我而言,上下文菜单是一种资源,因此可见性的绑定(bind)必须使用relativesource self 绑定(bind)设置。

另一方面,对于 CommandParameter,您还可以传递单击以打开上下文菜单的项目的 DataContext。为了将命令绑定(bind)路由到父窗口,您还需要相应地设置 CommandTarget。

关于WPF - 如果命令的 CanExecute 为 false,如何隐藏菜单项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3761672/

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