Есть несколько причин, о которых я знаю:
При изменении фокуса клавиатуры.
После выполнения команды.
Элементы управления могут вызывать это, когда они считают это необходимым в некоторых других случаях (например, когда вы нажимаете клавишу в TextBox).
Изменение свойства само по себе, как правило, не является причиной для аннулирования (я думаю, из соображений производительности).
К сожалению, мне не удалось найти какую-либо документацию по этому поводу в MSDN. То, что я опубликовал здесь, основано на том, что я нашел в Pro WPF в C # 2010 (отличная книга BTW).
Кроме того, не CommandManager становится недействительным. CommandManager просто отправляет событие (на которое подписываются элементы управления, использующие команды), чтобы они могли обновить свое состояние «включено / отключено».