Классические элементы пользовательского интерфейса в Windows Presentation Foundation. Шамшев Ан. Б. - 94 стр.

UptoLike

Составители: 

93
передать значение параметра (или значение null) и сослаться на целевой
элемент:
ApplicationCommands.New.Execute(null, targetElement);
Целевой элемент это просто элемент, в котором WPF начинает
искать привязку команды. В качестве такого элемента можно применять
как содержащее окно (имеющее привязку команды), так и вложенный
элемент окна.
Отметим, что вызов метода Execute() также еще можно делать и в
ассоциируемом объекте CommandBinding. В таком случае указывать целе-
вой элемент не нужно, потому что в качестве него будет автоматически
применяться тот элемент, который предоставляет используемую коллек-
цию CommandBindings:
this.CommandBindings[0].Command.Execute(null);
При таком подходе модель команд задействована лишь наполовину.
Подход позволяет инициировать команду, но не предоставляет возможно-
сти для реагирования на изменение ее состояния. Если необходимо со-
здать такую функцию, то необходимо дополнительно обработать событие
RoutedCommand.CanExecuteChanged, чтобы обеспечить соответствующую
реакцию на изменение состояния команды. При инициализации события
CanExecuteChanged необходимо будет вызвать метод RoutedCommand.
CanExecute() для проверки того, находятся ли команды в пригодном для
использования состоянии, и если нет отключить или изменить содер-
жимое в соответствующей части пользовательского интерфейса.
6.7.3. Отключение команд
Преимущества модели команд по-настоящему проявляются при со-
здании команды, меняющей свое состояние с активного на неактивное и
наоборот. Например, рассмотрим приложение с одним окном, показанное
на рис. 22. Это простой текстовый редактор, состоящий из меню, панели
инструментов и большого текстового поля (TextBox) и позволяющий от-
крывать файлы, создавать новые (пустые) документы и сохранять свою
работу.