カスタムルーティングイベントを試していますが、Attached Event HandlerでコンパイルするとTargetInvocationExceptionが発生します。WPFでカスタムRoutedEventを使用すると、TargetInvocationExceptionが発生する
私はカスタムコントロールEventRaiserControl
内の次のコードを持っている:
public static readonly RoutedEvent KickedEvent = EventManager.RegisterRoutedEvent("KickedEvent", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(EventRaiserControl));
public event RoutedEventHandler Kicked
{
add
{ this.AddHandler(KickedEvent, value); }
remove
{ this.RemoveHandler(KickedEvent, value); }
}
private void btn1_Click(object sender, RoutedEventArgs e)
{
RaiseEvent(new RoutedEventArgs(KickedEvent));
}
私はその後、私のメインウィンドウで、次のXAMLを持っている:背後にあるメイン・ウィンドウのコードで以下のハンドラで
<StackPanel local:EventRaiserControl.Kicked="StackPanel_Kicked">
<local:EventRaiserControl Kicked="EventRaiserControl_Kicked"/>
</StackPanel>
:
私のコードはこのハンドラでうまくいきます:
<local:EventRaiserControl Kicked="EventRaiserControl_Kicked"/>
しかしTargetInvocationException
で、私は付属のハンドラを追加瞬間失敗:
<StackPanel local:EventRaiserControl.Kicked="StackPanel_Kicked">
を誰かが助けることはできますか?私は何が見当たりませんか?
感謝
に
を変更 'TargetInvocationException'セットの' InnerException'ですか?通常、 'TargetInvocationException'は実際の問題をラップします。 – CodeNaked
私の謝罪は、@コードネイキッド、あなたは正しいです。 'InnerException'は"オブジェクト参照がオブジェクトのインスタンスに設定されていません "です。 –