2010-11-11 5 views
0

Приложение, которое я пишу в silverlight/C#, состоит из 13 постоянных кнопок, которые при нажатии выполняют простую навигацию на другую страницу.Настроить один обработчик событий для нескольких кнопок в .NET?

Проблема заключается в том, что мой код имеет 13 различных обработчиков событий (много кода) для почти идентичной цели.

Есть ли способ определить, какая кнопка была нажата, чтобы один обработчик событий был запущен, а простой оператор if мог определить, к какой странице перейти?

ответ

4

Да: вы можете использовать один и тот же метод для всех кнопок и использовать параметр «отправитель» как «sender.Name», чтобы получить имя нажатой кнопки.

1

Проверьте параметр отправителя обработчика события нажатия кнопки - вы сможете проверить, какая кнопка была отправителем.

0

Используйте словарь, используя ключ 'sender'. «Значение» может быть страницей для навигации.

2

В коде разработчика вашей программы наложите на один и тот же обработчик событий для всех 13 кнопок (найдите код, который имеет + = и поместите один и тот же обработчик событий для всех них).

Обратите внимание, что обработчик события имеет параметр объекта (ов). Вы можете использовать этот параметр следующим образом:

if(s.Name = "Button1") {//button 1 stuff} 

else if (s.Name = "Button2") {button 2 stuff} 

и т.д ..

EDIT: должен был s.Name = "Button1, 2, 3, и т.д .."

0

Если у вас есть много кода в обработчике событий, вы должны в любом случае разбить это на отдельный метод и отправить ему конкретные параметры для этого метода.

Но вы все равно можете иметь один обработчик событий, если вы посмотрите на аргумент отправителя.

Смежные вопросы