ВУЗ:
Составители:
Рубрика:
127
чике события. Грубый подход предусматривает присоединение собы-
тия Click к каждой кнопке в одном и том же обработчике события.
Однако событие Click поддерживает поднятие событий, что позволит
решить задачу более изящным способом. Например, можно обрабо-
тать все щелчки на кнопке, обрабатывая событие Click на более высо-
ком уровне (например, на уровне элемента StackPanel).
К сожалению, следующий код работать не будет:
<StackPanelClick="DoSomething"Margin="5">
<ButtonName="cmdl">Commandl</Button>
<ButtonName="cmd2">Command2</Button>
<ButtonName="cmd3">Command3</Button>
</StackPanel>
Дело в том, что StackPanel не включает событие Click, поэтому
этот код вызовеет ошибку во время синтаксического анализа XAML.
Для решения этой задачи нужно использовать другой синтаксис с
применением присоединенных событий в виде
ИмяКласса.ИмяСобытия. Ниже показан подходящий вариант:
<StackPanelButton.Click="DoSomething"Margin="5">
<ButtonName="cmdl">Commandl</Button>
<ButtonName="cmd2">Command2</Button>
<ButtonName="cmd3">Command3</Button>
</StackPanel>
Теперь обработчик события получит щелчок для всех кнопок,
содержащихся в элементе StackPanel.
Также можно подключить прикрепляемое событие в коде, одна-
ко вместо обычной операции += придется использовать метод
UIElement.AddHandler(). Ниже показан такой пример (предполагается,
что элемент StackPanel имеет имя pnlButtons):
pnlButtons.AddHandler(Button.Click,newRoutedEventHandler(Do‐
Something));
В обработчике события DoSomething() можно несколькими спо-
собами определить, какая кнопка сгенерировала событие. Например,
Страницы
- « первая
- ‹ предыдущая
- …
- 125
- 126
- 127
- 128
- 129
- …
- следующая ›
- последняя »