La letteratura è orribile in questo senso: tutto ciò che voglio fare è creare un evento da un controllo che ho definito ma creato al volo (speriamo che questo non causi problemi) da una classe di controller di broker. Il controllo è un PopUp.Stumped - gorgogliare un routedevent fino alla finestra in alto in WPF - come catturare ovunque!
public static readonly RoutedEvent weClosed = EventManager.RegisterRoutedEvent("TIMBOO", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(FixedTaskbarNotifier));
// Provide CLR accessors for the event
public event RoutedEventHandler TIMBOO
{
add { AddHandler(weClosed, value); }
remove { RemoveHandler(weClosed, value); }
}
// This method raises the Tap event
void RaiseTapEvent()
{
RoutedEventArgs newEventArgs = new RoutedEventArgs(weClosed);
RaiseEvent(newEventArgs);}
protected override void OnClosed(EventArgs e)
{
//TO DO - rearrange current open windows - fire event?
Log.Instance.Info("Clean up Window");
RaiseTapEvent(); This is called on close but nothing fires ..
}
Spero di catturare l'evento da qualche parte, anche nella finestra principale o superiore dell'albero visivo. Questo ha un riferimento a un controller che contiene l'elenco dei controlli di notifica -quando so che è stato chiuso, posso reoganizzare/ridisegnare tutti gli altri ancora attivi tramite il controller, ma come catturare? Grazie!