Как привязать событие к обработчику событий поля или свойства элемента, используя XAML? - PullRequest
2 голосов
/ 21 мая 2011

Допустим, у меня есть окно, и я хотел бы обработать закрытое событие. Это тривиально:

Closed="Window_Closed"

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

public MySophisticatedEventHandler event_handler { private set; get; }

в моем окне, и я хотел бы установить его так:

Closed="event_handler.Window_Closed"

'event_handler.Window_Closed' не является допустимое имя метода обработчика событий. Только методы экземпляра на сгенерированном или Класс code-behind действителен.

Вопрос - есть ли какой-нибудь умный способ сделать это с помощью XAML? Пока что я установил его в коде, но я предпочитаю XAML для таких вещей.

Редактирование

1

Только для записи. В коде вы просто пишете:

Closed += event_handler.Window_Closed;

IOW, я ищу прямой эквивалент этого для XAML.

Ответы [ 2 ]

2 голосов
/ 21 мая 2011

Что я обычно делаю, это помещаю сложный метод в мою ViewModel, а затем вызываю его из моего кода за представлением. Вы можете использовать команду для привязки к командам через XAML, но IMO обычно не стоит усилий, если вы не используете одну из встроенных команд.

0 голосов
/ 17 июня 2012

вы не можете использовать WPF до 4.5, потому что обработчик событий не поддерживает расширение разметки. но с 4.5 вы, возможно, делаете эту проверку здесь для объяснения и здесь для реализации

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