ВУЗ:
Составители:
Рубрика:
118
<ButtonClick="cmdOKClick">OK</Button>
Также можно соединить событие с кодом. Ниже приведен экви-
валент кода разметки XAML, показанной выше:
img.MouseUp+=newMouseButtonEventHandler(img_MouseUp);
Этот код создает объект делегата, имеющий правильную сигна-
туру для события (в данном случае это экземпляр делегата MouseBut-
tonEventHandler) и указывающий метод img_MouseUp(). Затем он до-
бавляет делегата в список зарегистрированных обработчиков событий
для события img.MouseUp.Язык С# разрешает применять более ра-
циональный синтаксис, явным образом создающий подходящий объ-
ект делегата: img.MouseUp+=img_MouseUp;
Подход с использованием кода будет полезным, если нужно ди-
намически создавать элемент управления и присоединять обработчик
события в некоторой точке в течение времени существования окна.
События, которые включаются в XAML, всегда присоединяются при
первом создании экземпляра объекта окна. Этот подход позволяет
также упростить и рационализировать код XAML, что будет ис-
ключительно полезным, если планируется совместно использовать
его не с программистами, а, например, с художниками-дизайнерами.
Недостатком является увеличение количества строк кода, который
увеличит объем файлов с кодом.
Подход, продемонстрированный в предыдущем коде, основан на
упаковщике события, который вызывает метод
UIElement.AddHandler(). Также можно связать событие напрямую,
самостоятельно вызвав метод UIElement.AddHandler (). Ниже показан
пример:
img.AddHandler(Image.MouseUpEvent,newMouseButtonEventHand‐
ler(img_MouseUp));
Если используется этот подход, то придется создавать подходя-
щий тип делегата (например, MouseButtonEventHandler). Нельзя соз-
дать объект делегата неявно, как это делается при подключении со-
Страницы
- « первая
- ‹ предыдущая
- …
- 116
- 117
- 118
- 119
- 120
- …
- следующая ›
- последняя »