親コントロールからイベント ハンドラーを接続しようとしている UserControl があります。できる限りコードを実行したくないのですが、いくつかの問題が発生しています。これが私のセットアップです:
私が持っているNewUserControlコードの背後にある:
public RoutedEventHandler PrintClickHandler { get; set; }
public DependencyProperty PrintClickHandlerProperty =
DependencyProperty.Register("PrintClickHandler", typeof(RoutedEventHandler),
typeof(NewUserControl), new PropertyMetadata(null));
MyParentControl には次のものがあります。
public RoutedEventHandler PrintClickHandler
{
get { return btnPrintCall_Click; }
}
private void btnPrintCall_Click(object sender, RoutedEventArgs e)
{
// some code
}
そして最後に、MyParentControls xaml に NewUserControl.PrintClickHandler のバインドがあります。
<NewUserControl PrintClickHandler="{Binding Path=PrintClickHandler,
RelativeSource={RelativeSource AncestorType=local:MyParentControl, AncestorLevel=1}}" />
これで、デバッガーですべてのゲッターとセッターを、呼び出されたときにブレークポイントをヒットする従来の方法で実装できます。MyParentControl.PrintClickHandler のゲッターがヒットしているのがわかりますが、NewUserControl.PrintClickHandler のセッターはヒットしません。出力には、このバインディングに関連するエラーや警告もありません。