Как можно минимизировать количество подобных обработчиков событий? - PullRequest
0 голосов
/ 02 декабря 2009

Окно WPF должно иметь сотни объектов (ряды прямоугольников), и щелчок мыши по каждому из них должен запускать аналогичные действия. Эти действия отличаются только несколькими параметрами (скажем, «№ строки» и «№ позиции в ряду»). Нужно ли иметь сотни почти одинаковых обработчиков событий или как я могу оптимизировать свой код?

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

С уважением.

Ответы [ 3 ]

0 голосов
/ 02 декабря 2009

WPF устраняет эту проблему, вводя маршрутизируемые события . На любом уровне в иерархии элементов вы можете перехватывать события от его дочерних элементов и основывать свою логику в зависимости от фактического элемента, который первым получил это событие (как представлено свойством Source объекта RoutedEventArgs).

0 голосов
/ 02 декабря 2009

Разве вы не можете просто использовать экземпляр ICommand в своей модели представления и использовать параметр команды, чтобы определить, по какому прямоугольнику щелкнули?

0 голосов
/ 02 декабря 2009

Я не эксперт в WPF, но при обработке событий вы можете написать 1 дан за каждое подобное событие для этого обработчика. В обработчике используйте параметр senter, чтобы узнать, из какого управления он поступил.

Вместо сотен аналогичных событий у вас может быть большой с переключателем

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...