WPF XAML Intellisense не работает правильно для пользовательских обработчиков перенаправленных событий - PullRequest
1 голос
/ 07 декабря 2009

Я определил пользовательское перенаправленное событие со следующими конструкциями (имена изменены):

открытый класс MyRoutedEventArgs: RoutedEventArgs {...}

открытый делегат void MyRoutedEventHandler (Отправитель объекта, аргументы MyRoutedEventArgs);

public static readonly RoutedEvent MyEvent;

MyClass.MyEvent = EventManager.RegisterRoutedEvent ("MyEvent", RoutingStrategy.Tunnel, typeof (MyRoutedEventHandler), typeof (MyClass));

Далее я создаю оболочку события CLR:

публичное событие MyRoutedEventHandler MyEvent { add {AddHandler (MyEvent, value); } удалить {RemoveHandler (MyEvent, значение); } }

Проблема в том, что когда я определяю его, как показано выше, intellisense XAML не работает для автоматической генерации тела метода обработчика. Что я заметил, так это то, что если вы измените свою оболочку событий CLR на общий тип RoutedEventHandler, все будет работать! Однако в этом случае автоматически сгенерированный метод получает универсальный RoutedEventArgs (ну, правильно соответствующий RoutedEventHandler), что вынуждает меня вручную переписать его как MyRoutedEventArgs.

1 Ответ

1 голос
/ 07 декабря 2009

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

Кто-нибудь пробовал это с VS 2010?

...