我有一個上下文菜單內的下列菜單項在我的WPF應用程序:如何在頂級WPF MenuItem被禁用時禁用它?
<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 =假的,因此這兩個命令得到禁止,頂級MenuItem「電子郵件」保持啓用狀態。我知道我可能會將頂級菜單項的IsEnabled綁定到它的Children屬性,然後使用轉換器來決定何時應禁用它,但似乎應該會自動發生。這不是使用CommandBindings(即他們照顧IsEnabled)的全部要點嗎?有什麼更好的方法來完成這個?