2009-12-05 29 views
2

我有一個窗口,其中有許多控件,用戶控件或從其他控件(以及網格和框架)派生的控件。當我添加簡單事件時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派生? – 2009-12-05 11:17:00

+0

查看堆棧跟蹤以查看誰在執行無效轉換。有可能是你沒有想到的其他一些邏輯。 – 2009-12-05 13:15:13

回答

1

我同意Anurag。如果您的客戶端上託管MyControl的其他位置有按鈕,您可以通過將Click =「Hello_Click」更改爲Button.Click =「Hello_Click」,將按鈕事件附加到您的控件上。但是,您需要在邏輯層次上進一步添加按鈕,以便它的事件可以觸發您的控制。該錯誤表明MyControl不能繼承Button的子類。

+0

控件的XAML在這裏:http://pastebin.com/m35792d4b C#在這裏:http://pastebin.com/m3ecfa90c – ErikTJ 2009-12-06 17:45:43

+2

Button.Click =「Hello_Click」訣竅,謝謝! – ErikTJ 2009-12-06 18:51:03

相關問題