Trong constructor MainWindow
, tôi đăng ký một event handler:Event Handler Null
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");
}
}
}
Nhưng trong PageViewDocText
, NewPageIRPRO
là null
Tôi đang làm gì sai?
Từ PageViewDocText
, tôi muốn gọi MainWindow.ViewIPRO
.
Sự kiện này cháy xử lý và được đăng ký dòng dưới đây pageViewDocText.NewPageIRPRO + =
App.StaticGabeLib.Search.NewDocIRPRO += new GabeLib.SearchCls.DocEventHandler(ViewIPRO);
Liệu các 'PageViewDocText' constructor lửa sự kiện đó? Điều này rất đơn giản để gỡ lỗi; chỉ cần nhìn vào ngăn xếp cuộc gọi. Không có cách nào mà sự kiện là null sau khi đăng ký trừ khi bạn đã bỏ qua mã vi phạm. –
Tôi nghĩ bạn cần hiển thị cho chúng tôi dòng mã nơi bạn nhận 'NewPageIRPRO' là null. –
@EdS. Không có trình xử lý sự kiện nút nào kích hoạt sự kiện đó. Tôi bị mất là tại sao xử lý sự kiện cũng trống rỗng. Trong GabeLib (một lớp thuần khiết), tôi sử dụng trình xử lý sự kiện có vẻ giống như cách và nó hoạt động tốt. – Paparazzi