Die Wege der Events sind unergründlich

  • WPF

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Johannes.

    Die Wege der Events sind unergründlich

    Hallo ihr Lieben,
    ich hab mal wieder eine Frage.

    Wie kann ich den Verlauf eines Events verfolgen oder wie kann ich garantieren, dass ein Event von einem Fenster oder Control beachtet wird?

    Ich habe ein WPF-UserControl erstellt und werfe in einer Button_Click Methode ein Raise Event PropertyChanged(Me, new PropertyChangedEventArgs(Nothing))
    (Nothing soll das Event "an Alle" schicken ?)

    Wenn ich im Control die Schaltfläche klicke passiert nichts, verlasse ich mit der Maus das übergeordnete Fenster, dann wird das Fenster aktualisiert und die Daten, die ich in Button_Click geändert habe werden angezeigt.

    Wie kann ich - in Zukunft - die Wege eines Events nachvollziehen?

    ===============
    Ich schreibe meine Frage mal zu Ende, obwohl ich jetzt das Problem beseitigen konnte und mein Programm jetzt läuft. Die grundsätzliche Frage bleibt nämlich.
    ===============

    Hintergrund
    Ich nutze eine DAO-Wrapperklasse und habe im MainWindow und im UserControl ein DependencyProperty Recordset (DAO.Recordset) angelegt.
    Das Recorset wird im MainWindow im Konstruktor gefüllt und als DataContext = Me festgelegt.
    Das Recorset im UserControl wird via Binding auf das Recorset des Fensters gebunden.
    Meine Test-Texbox bindet ...
    // hier konnte ich das Problem lösen //
    bisher habe ich im Fenster eine zusätzliche private Fields-Variable mit Recordset.Fields verbunden und meine TextBox mit diesem Fields[Vorname].Value gebunden
    // Lösung
    ich binde jetzt direkt an das DependencyProperty Recordset mit Recorset.Fields[Vorname].Value
    In der DAO-Wrapperklasse reicht es jetzt ein PropertyChanged für "Fields" zu werfen.
    Button_Click muss kein eigenes ChangedEvent werfen, da er Recordset.MoveNext aufruft und dort das genannte PropertyChanged "Fields" geworfen wird.
    //

    Also, es funktioniert jetzt, aber wie kann ich die tagelange Suche nach verschwundenen Events vermeiden und das Event-Konzept besser verstehen?
    Gibt es eine Liste der Event-Listener? In welcher Reihenfolge werden Events verarbeitet und wann werden diese gelöscht?
    Der Debugger kann den Events leider nicht folgen (?).

    Danke, wenn sich jemand mit dieser Frage beschäftigt und noch mehr Dank, für eine Antwort!
    Hallo

    Ja, die Events sind in der Welt der WPF anders aufgebaut. Du musst unterscheiden direkten, Bubbling und Tunneling-Events.
    Ich habe hierfür ein eigenes Kapitel in meiner Tutorialreihe.

    Tutorialreihe <WPF lernen/>


    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##