我在RibbonTab中有大约5个RibbonGroup,每个功能区组包含大约3-5个命令。为了使屏幕上的所有内容都适合,WPF功能区控件会自动将少数RibbonGroup折叠到下拉菜单中。没有什么特别的,直到这里。
现在我看到在第一次打开下拉列表之前,折叠的RibbonGroups中的命令的CanExecute事件不会触发。 (这可能是为了提高性能 - 即除非看到任何命令,否则需要触发CanExecute!?)
在我的应用程序中,逻辑是如果在RibbonGroup中没有启用任何命令(即CanExecute为false),那么我们隐藏该RibbonGroup。但除非所有CanExecutes都被触发,否则我不知道启用了多少(或所有)命令。
这是RibbonGroup的限制还是这种行为设计?有没有办法手动执行所有CanExecutes,至少一次,无论命令是否在折叠的RibbonGroup中。
BTW,CommandManager.InvalidateRequerySuggested()
在这里也无济于事。