Приложение WPF не будет выполняться, когда я добавлю простое событие - PullRequest
2 голосов
/ 05 декабря 2009

У меня есть окно, в котором у меня есть много элементов управления, пользовательских элементов управления или элементов управления, полученных из других элементов управления (а также сеток и фреймов).

Это работает нормально, если я НЕ добавляю событие в ЛЮБОЙ из элементов управления, которые есть в моем окне (в XAML). У меня есть много других событий, которые не вызывают это, но если я добавлю новое событие. Это потерпит крах.

Пример:

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

<con:MyControl Content="Hello" Grid.Column="3" Width="90"/>

Итак, я изменяю это на:

<con:MyControl Content="Hello" Grid.Column="3" Width="90" Click="Hello_Click"/>

Приложение компилируется ...

Но тогда это происходит:

'Set connectionId threw an exception.' Line number '53' and line position '22'.

InnerException:

{"Unable to cast object of type 'System.Windows.Controls.Button' to type 'MyNamespace.MyClass.MyControl'."}

Если я сейчас удалю

Click="Hello_Click"

Отлично работает!

1 Ответ

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

Я согласен с Анурагом. Если у вас есть кнопка в другом месте вашего клиента, на которой размещен MyControl, вы можете прикрепить событие кнопки к своему элементу управления, изменив Click = "Hello_Click" на Button.Click = "Hello_Click". Но вам понадобится кнопка дальше вниз по логической иерархии, чтобы ее событие могло вылиться в ваш контроль. Ошибка предполагает, что MyControl не подкласс Button.

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