は、私は、イベントハンドラを登録しています:は、イベントハンドラNullが<code>MainWindow</code>コンストラクタで
public partial class MainWindow : Window, INotifyPropertyChanged
{
public MainWindow()
{
InitializeComponent();
pageViewDocText = new PageViewDocText();
framePageDocFieldDetail.Content = pageViewDocText;
pageViewDocText.NewPageIRPRO += new GabeLib.SearchCls.DocEventHandler(ViewIPRO);
}
protected void ViewIPRO(string IRPOlink) // ...
}
public partial class PageViewDocText : Page, INotifyPropertyChanged
{
public event GabeLib.SearchCls.DocEventHandler NewPageIRPRO;
private void btn_PageBreakNext(object sender, RoutedEventArgs e)
{
// this fires but NewPageIRPRO is null
if (NewPageIRPRO != null)
{
NewPageIRPRO("dummylink");
}
}
}
しかしPageViewDocText
で、NewPageIRPRO
がnullである私が間違っているのは何
?
PageViewDocText
から、MainWindow.ViewIPRO
に電話します。
このイベントハンドラが起動し、あなたが別のクラス(リストされていない)からのイベントを呼び出していると不足しているデリゲートがあるようpageViewDocText.NewPageIRPRO下の行+ =
App.StaticGabeLib.Search.NewDocIRPRO += new GabeLib.SearchCls.DocEventHandler(ViewIPRO);
'PageViewDocText'コンストラクタはそのイベントを発生していますか?これは簡単にデバッグできます。コールスタックを見てください。問題のコードを削除しない限り、サブスクリプション後にイベントがnullになることはありません。 –
私は 'NewPageIRPRO'がnullであるコードを表示する必要があると思います。 –
@EdS。いいえ、ボタンイベントハンドラはそのイベントを発生させません。私はなぜイベントハンドラも空であることについて迷っています。 GabeLib(純粋なクラス)では、私は同じように思われるイベントハンドラを使用し、うまく動作します。 – Paparazzi