WPF 命令 CanExecute 事件不会触发,除非功能区组下拉列表处于打开状态



我在RibbonTab中有大约5个RibbonGroup,每个ribbon组包含大约3-5个命令。为了适应屏幕上的所有内容,WPF功能区控件会自动将几个RibbonGroup折叠到下拉菜单中。在这里之前没有什么特别的。

现在我看到,在第一次打开下拉列表之前,折叠RibbonGroups中命令的CanExecute事件不会触发。(这可能是为了提高性能,即除非有任何命令可见,否则需要什么来激发CanExecute!?)

在我的应用程序中,逻辑是这样的,如果RibbonGroup中没有启用任何命令(即CanExecute为false),那么我们将隐藏该RibbonGroup。但是,除非所有CanExecute都被激发,否则我不知道启用了多少(或全部)命令。

这是RibbonGroup的限制,还是这种行为是故意的?是否有任何解决方法可以手动执行所有CanExecutes,至少执行一次,无论命令是否在折叠的RibbonGroup中。

顺便说一句,CommandManager.InvalidateRequerySuggested()在这里也没有帮助。

RibbonControls被发现是一个非常粘的库。考虑迁移到Fluent Ribbon Control Suite

相关内容

  • 没有找到相关文章

最新更新