在 wpf 上下文菜单中禁用多重检查
我想在上下文菜单项中禁用多重检查,只检查一项,如何?
I want to disable multicheck in context Menu items just check on one item how?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我想在上下文菜单项中禁用多重检查,只检查一项,如何?
I want to disable multicheck in context Menu items just check on one item how?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
您可以在代码隐藏中执行此操作,如 DarkSquirrel42 的答案中所述。但如果您想要一个可重用的解决方案,最好的方法可能是将其实现为附加行为,以便您可以直接在 XAML 中使用它。下面是一个基本实现:
XAML 用法:
(
my
是映射到您在其中声明MenuBehavior
类的 CLR 命名空间的 XML 命名空间)当然有有改进的余地:
您可能希望强制选中一个选项(即不可能取消选中所有内容)DONE当前组名称是全局的,即如果您在不同的环境中使用相同的组名称菜单,“单选”规则将应用于所有菜单。您可能希望将其限制为当前菜单完成编辑:我更新了代码以包含上述改进:
MenuItem
?
)+
)*
)。这实际上与根本不使用附加行为相同,但为了完整性我还是将其包含在内......XAML 使用示例说明了各种规则
You could do it in code-behind as explained in DarkSquirrel42's answer. But if you want a reusable solution, the best approach is probably to implement it as an attached behavior, so that you can use it directly in XAML. Here's a basic implementation:
XAML usage:
(
my
is an XML namespace mapped to the CLR namespace where you declared theMenuBehavior
class)Of course there is room for improvements:
You might want to enforce that one option is checked (i.e. impossible to uncheck everything)DONECurrently the group names are global, i.e. if you use the same group name in different menus, the "single choice" rule will be applied across all the menus. You might want to restrict it to the current menuDONEEDIT: I updated the code to include the improvements mentioned above:
MenuItem
s in the same menu?
at the end of the group name)+
at the end of the group name)*
at the end of the group name). That's actually the same as not using the attached behavior at all, but I included it anyway for completeness...The XAML usage example illustrates the various rules
处理 MenuItems 的 Click 事件...
handle the Click event of the MenuItems ...