У меня есть следующий MenuItem внутри контекстного меню в моем приложении WPF:
<MenuItem Header="Email">
<MenuItem Command="Commands:CommandRepository.GenerateUserEmailCommand"
CommandParameter="{Binding Path=SelectedItems}"
Header="Email User">
</MenuItem>
<MenuItem Command="Commands:CommandRepository.GenerateManagerEmailCommand"
CommandParameter="{Binding Path=SelectedItems}"
Header="Email Manager">
</MenuItem>
</MenuItem>
Проблема заключается в том, что когда обе команды электронной почты возвращают CanExecute = false, и поэтому обе команды отключаются,Элемент меню верхнего уровня «Электронная почта» остается включенным.Я знаю, что мог бы связать IsEnabled элемента верхнего меню со свойством Children, а затем использовать конвертер, чтобы решить, когда его следует отключить, но, похоже, это должно происходить автоматически.Разве это не весь смысл использования CommandBindings (то есть они заботятся о IsEnabled для вас)?Есть ли лучший способ сделать это?