повышение параметров передачи событий в wpf - PullRequest
1 голос
/ 31 мая 2010

Я хотел бы добавить вкладки в мое окно, когда элемент в GridView щелкается дважды. Но вкладка, которая будет добавлена, зависит от выбранного элемента. Каким способом я должен сделать это на WPF? Я думал о RoutedEvents, но я не знаю, как передать параметр с ним. Есть предложения?

Ответы [ 2 ]

6 голосов
/ 31 мая 2010

В этой статье проекта кода рассматривается использование нового RoutedEvent с типом аргумента, отличным от RoutedEventArgs (довольно далеко внизу, поиск "Second, использующий пользовательские RoutedEventArgs"), хотя я бы хотел, чтобы WPF включал версия RoutedEventHandler, как у CLR EventHandler<T> where T : EventArgs, поэтому вам не нужно каждый раз объявлять нового делегата.

Краткое содержание:

  • Создайте новый тип, который содержит подтипы RoutedEventArgs и имеет свойства для ваших данных.
  • Убедитесь, что ваш подтип RoutedEventArgs реализует конструкторы RoutedEventArgs не по умолчанию, поскольку они необходимы для его работы.
  • Объявите новый делегат, соответствующий этому подтипу.
  • Используйте как любое другое пользовательское событие в вашем коде (также описанное в этой ссылке).
0 голосов
/ 31 мая 2010

Используйте команды вместо перенаправленных событий:

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

...