在
MainWindow
构造函数中,我正在注册一个事件处理程序: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
为空。
我做错了什么?
从PageViewDocText
中,我想调用MainWindow.ViewIPRO
。
这个事件处理程序会触发并注册以下代码行:pageViewDocText.NewPageIRPRO +=
App.StaticGabeLib.Search.NewDocIRPRO += new GabeLib.SearchCls.DocEventHandler(ViewIPRO);
PageViewDocText
构造函数是否触发了那个事件?这很容易调试;只需查看调用堆栈即可。除非您遗漏了有问题的代码,否则在订阅后该事件不可能为null。 - Ed S.NewPageIRPRO
被设置为 null。 - Mathieu GuindonNewPageIRPRO
事件实现添加/删除模式,并在内部设置断点以查看发生了什么。 - noseratio - open to work