除非打开RibbonGroup下拉列表,否则WPF命令CanExecute事件不会触发

时间:2012-10-17 18:50:17

标签: wpf ribbon ribbon-control ribboncontrolslibrary canexecute

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

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

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

这是RibbonGroup的限制还是这种行为设计?有没有办法手动执行所有CanExecutes,至少一次,无论命令是否在折叠的RibbonGroup中。

BTW,CommandManager.InvalidateRequerySuggested()在这里也无济于事。

1 个答案:

答案 0 :(得分:1)

发现RibbonControls是一个非常古怪的库。考虑转移到Fluent Ribbon Control Suite