2009-12-05 4 views
2

저는 많은 컨트롤, UserControls 또는 다른 컨트롤 (및 그리드 및 프레임)에서 파생 된 컨트롤이있는 창이 있습니다.간단한 이벤트를 추가 할 때 WPF 응용 프로그램이 실행되지 않습니다.

내 모든 창 (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" 

제거하면!

+0

MyControl은 System.Windows.Controls.Button에서 올바르게 파생됩니까? –

+0

스택 추적에서 잘못된 캐스트를 수행중인 사람을 확인하십시오. 가능성에 대해 생각하지 않고있는 다른 논리가 있습니다. –

답변

1

나는 Anurag에 동의합니다. MyControl을 호스팅하는 클라이언트의 다른 곳에 단추가 있으면 Click = "Hello_Click"을 Button.Click = "Hello_Click"으로 변경하여 단추 이벤트를 컨트롤에 첨부 할 수 있습니다. 그러나 논리적 인 계층을 넘어서는 단추가 있어야 이벤트가 제어 할 수 있습니다. 이 오류는 MyControl이 Button을 하위 클래스로 만들지 않는다는 것을 나타냅니다.

+0

컨트롤의 XAML은 다음과 같습니다. http://pastebin.com/m35792d4b C#은 다음 위치에 있습니다. http://pastebin.com/m3ecfa90c – ErikTJ

+2

Button.Click = "Hello_Click"트릭을 수행했습니다. 감사합니다. – ErikTJ

관련 문제