Как ссылаться на обработчики событий, которые не находятся внутри кода, но находятся в другом объекте? - PullRequest
1 голос
/ 19 июля 2011

Я могу установить DataContext для любого объекта, а затем привязать свойства этого объекта к моим элементам управления.

Я хочу сделать то же самое с обработчиками событий.У меня есть класс обработчиков событий, которые я хочу использовать xaml.Однако xaml ищет обработчики событий в коде позади.

    <Button Click="OnSearch"/>

Я получаю предупреждения о том, что OnSearch не существует в коде класса.

  1. Я хочуНаходиться в другом объекте.Как я могу это сделать?
  2. Что если я хочу, чтобы xaml искал обработчик событий в объекте контекста данных?

Я новичок в WPF и пытаюсьучить.Я пытался связать обработчики событий, но это явно не сработало!

1 Ответ

5 голосов
/ 20 июля 2011

Я думаю, для этой цели вам следует использовать Команды , а не События .

Вам необходимо определить YourRoutedEvent , которое получается из RoutedCommand

И свяжите это с командой вашего Кнопка управления. В вашем YourRoutedEvent вы можете реализовать любую сложную логику, которую вы хотите вести себя по-разному в разных состояниях вашего приложения, что, вероятно, то, что вы хотите, поэтому спрашиваете о динамическом связывании событий.

Вот пример ссылки, которая демонстрирует метод привязки команд:

Привязка команды

Привет.

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