Является ли привязка IsEnabled необязательной при связывании Command? - PullRequest
5 голосов
/ 19 февраля 2012

Я заметил, что следующий код:

<Button Content="_Timbres..." 
    Command="{Binding Path=ShowTimbresCommand}" 
    IsEnabled="{Binding Path=CanExecuteShowTimbresCommand}"/>

ведет себя одинаково как:

<Button Content="_Timbres..." 
    Command="{Binding Path=ShowTimbresCommand}">

Это означает, что CanExecuteShowTimbresCommand автоматически связывается со свойством IsEnabled.Это правда и почему?

1 Ответ

10 голосов
/ 19 февраля 2012

Обычно элементы управления, которые принимают Command, устанавливают IsEnabled в false, если CanExecute команды false, это все, что нужно.

MSDN :

Другая цель команд - указать, доступно ли действие.[...] Кнопка может подписаться на событие CanExecuteChanged и быть отключена, если CanExecute возвращает false , или может быть включена, если CanExecute возвращает true .

...