Nel costruttore MainWindow
, sto registrando un gestore di eventi: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");
}
}
}
Ma in PageViewDocText
, NewPageIRPRO
è nullo
Che cosa sto facendo di sbagliato?
Da PageViewDocText
, voglio chiamare MainWindow.ViewIPRO
.
Questo evento si attiva gestore ed è registrata la riga seguente pageViewDocText.NewPageIRPRO + =
App.StaticGabeLib.Search.NewDocIRPRO += new GabeLib.SearchCls.DocEventHandler(ViewIPRO);
Fa il PageViewDocText' costruttore di fuoco 'quell'evento? È semplice eseguire il debug; basta guardare lo stack delle chiamate. Non c'è modo che l'evento sia nullo dopo l'abbonamento a meno che non abbia omesso il codice incriminato. –
Penso che sia necessario mostrarci la riga di codice in cui si rileva che 'NewPageIRPRO' è nullo. –
@ Eds. Nessun gestore di eventi pulsante attiva questo evento. Sono perso perché il gestore di eventi è vuoto anche. In GabeLib (una classe pura) uso il gestore di eventi che sembra essere allo stesso modo e funziona perfettamente. – Paparazzi