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

UptoLike

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

81
ходимой информации. Событие CanExecuteChanged вызывается при изме-
нении состояния. Для любых использующих данную команду элементов
управления оно является сигналом о том, что им следует вызвать метод
CanExecute() и проверить состояние команды. Это часть связующего эле-
мента, который позволяет источникам команд (например, элементу управ-
ления Button или элементу управления MenuItem) автоматически вклю-
чать себя, когда команда доступна, и отключать, когда она не доступна.
6.3. Класс RoutedCommand
При создании собственных команд реализовать интерфейс
ICommand напрямую не обязательно. Вместо этого можно использовать
класс System.Windows.Input.RoutedCommand, который автоматически реа-
лизует этот интерфейс. Класс RoutedCommand является единственным
классом в WPF, который реализует интерфейс ICommand, поэтому все ко-
манды WPF представляют собой экземпляры класса RoutedCommand или
производного от него класса.
Одна из ключевых концепций, лежащих в основе модели команд в
WPF, состоит в том, что класс RoutedCommand не содержит никакой ло-
гики приложения, он просто представляет команду. Это означает, что все
объекты RoutedCommand обладает одинаковыми возможностями.
Класс RoutedCommand добавляет дополнительную инфраструктуру
для туннелирования и перемещения событий. Если интерфейс ICommand
инкапсулирует идею команды действие, которое может инициировать-
ся и быть доступным или недоступным, то класс RoutedCommand изменя-
ет команду таким образом, чтобы она могла подниматься вверх по иерар-
хии элементов WPF до подходящего обработчика событий.
Для поддержки маршрутизируемых событий класс RoutedCommand
реализует интерфейс ICommand как закрытый и добавляет несколько от-
личающиеся версии его методов. Наиболее заметным изменением являет-
ся то, что методы Execute() и CanExecute() теперь принимают дополни-
тельный параметр. Новые сигнатуры этих методов выглядят следующим
образом: