ВУЗ:
Составители:
Рубрика:
128
можно сравнить ее текст (этот способ может привести к проблемам с
локализацией) или ее имя. Лучше всего проверить, было ли задано
свойство Name каждой кнопки с помощью XAML, чтобы имелся дос-
туп к соответствующему объекту посредством поля в классе окна и
сравнить эту ссылку с отправителем события. Ниже показан пример:
privatevoidDoSomething(objectsender,RoutedEventArgse)
{
if(sender==cmdl){...1
else
if(sender==cmd2){...)
else
if(sender==cmd3){...}
}
Существует еще один вариант – вместе с кнопкой отправить
порцию информации, которую можно использовать в коде. Например,
можно задать свойство Tag каждой кнопки, как показано ниже:
<StackPanelClick="DoSomething"Margin="5">
<ButtonName="cmdl"Tag="Thefirstbutton.">Commandl</Button>
<ButtonName="cmd2"Tag="Thesecondbutton.">Command2</Button>
<ButtonName="cmd3"Tag="Thethirdbutton,">Command3</Button>
</StackPanel>
После этого можно обращаться к свойству Tag в коде:
privatevoidDoSomething(objectsender,RoutedEventArgse)
{
objecttag=((FrameworkElement)sender).Tag;
MessageBox.Show((string)tag);
}
5.4.1. Туннельные события
Туннельные события работают точно так же, как и поднимаю-
щиеся события, но в обратном направлении. Например, если бы собы-
тие MouseUp было туннельным, то при щелчке на метке событие
MouseUp возникло бы сначала в окне, затем в элементе Grid, затем в
Страницы
- « первая
- ‹ предыдущая
- …
- 126
- 127
- 128
- 129
- 130
- …
- следующая ›
- последняя »