Основы проектирования интерфейсов с использованием технологии Windows Presentation Foundation. Шамшев Ан. Б. - 127 стр.

UptoLike

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

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() можно несколькими спо-
собами определить, какая кнопка сгенерировала событие. Например,