#c_sharp #wpf #button #click
В WPF присутствует 36 кнопок, при нажатии на каждую, должна изменятся переменная
и выводится сообщение.
Есть ли способ не писать по 36 раз в мейне:
public void button_Click1(object sender, RoutedEventArgs e)
{
amount += 100;
System.Windows.MessageBox.Show("Message");
}
И при такой возможности, можно ли будет дать каждой кнопке свое сообщение?
Дополнено:
Я немного не понял. Можно расжевать?
Будет как то так?
И на code-befind:
public void button_Click1(object sender, RoutedEventArgs e)
{
var b1 = (Button)sender;
amount +=100;
(сообщение через массив)
var b2 = (Button)sender;
amount +=100;
(другое сообщение через массив)
}
Ответы
Ответ 1
Кто вам мешает вешать обработчик на один и тот же метод? И на code-befind: public void button_Click1(object sender, RoutedEventArgs e) { var thisButton = (Button)sender; // Кнопка, которая была нажата ... } Но еще лучше - почитайте про MVVM и используйте темплейты и биндинги.Ответ 2
В WPF есть маршрутизируемые события, благодаря этому вы можете присоединить обработчик к контейнеру, но обрабатывать клики по кнопкам, например:в коде private void StackPanel_Click(object sender, RoutedEventArgs e) { Button btn = (Button)e.OriginalSource; MessageBox.Show(btn.Tag.ToString()); }
Комментариев нет:
Отправить комментарий