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

UptoLike

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

89
Хотя обычно все привязки добавляются в окно, свойство
CommandBindings определено в базовом классе UIElement, поэтому оно
поддерживается любым элементом. Например, приведенный пример рабо-
тал бы точно также, даже если бы привязка команды была добавлена и
прямо в код использующей эту команду кнопки, хотя использовать ее по-
вторно с каким-то другим элементом более высокого уровня было бы не-
возможно. Для получения наибольшей гибкости, привязки команд обычно
добавляются в окно наивысшего уровня. Если необходимо использовать
ту же самую команду в более чем одном окне, привязку потребуется со-
здавать в обоих окнах.
В показанном выше коде предполагается, что в том же самом классе
имеется готовый к получению команды обработчик событий по имени
NewCommand. Ниже показан пример простого кода для отображения ис-
точника команды:
private void NewCommand(object sender, ExecutedRoutedEventArgs e)
{
MessageBox.Show("New command triggered with " + e.Source.ToString());
}
Теперь при запуске приложения кнопка является доступной (рис.
20). В случае выполнения на ней щелчка возбуждается событие Executed,
которое затем поднимается до уровня окна и обрабатывается показанным
ранее обработчиком NewCommand().
Рис. 20. Кнопка с привязкой команды
На этом этапе WPF сообщает об источнике событие (кнопке). Объ-
ект ExecutedRoutedEventArgs также позволяет извлечь ссылку на команду,
которая была вызвана (т. е. команду ExecutedRoutedEventArgs.Command),
и любую дополнительную информацию, которая была передана вместе с
ней (параметр ExecutedRoutedEventArgs.Parameter). В данном примере ни-