Feedback

C# - RoutedEvent erstellen

Veröffentlicht von am 25.11.2009
(2 Bewertungen)
In Wpf gibt es verschiedene Arten von Events. Die normalen aus .NET bereits bekannten. Und dann gibt es noch die RoutedEvents. Hier wird zwischen einem Bubbling und einem Tunneling Event unterschieden.

Beim Bubbling wird aus der Control-Hirarchie von oben nach unten benachrichtigt. Beim Tunneling genau anders herum. z.B. liegt auf einem Grid ein StackPanel, in dem ein Button eingefügt ist. Beim Bubbling wird zuerst der Button Event ausgelöst, dann der vom Panel. Zum Schluss der vom Grid. Beim Tunneling zuerst das Grid, dann das Panel, zum Schluss der Button. Zum Anhalten dieses Prozesses gibt es von den RoutedEventArgs, die als Parameter übergeben werden das Flag Handled. Wird es auf
true
gesetzt, unterbricht die Abarbeitung im Fluss von oben nach unten beim Tunneling, oder von unten nach oben beim Bubbeling.

Es wird nur eine Instanz von RoutedEventArgs für beide Phasen benutzt. Sowohl fürs Tunneling, als auch fürs Bubbeling. Das dient zum stoppen der Abarbeitung und damit z.B. zum Abfangen von Nachrichten.

Zum erstellen eines RoutedEvents wird der EventManager verwendet.
GFU-Schulungen  [Anzeige]

VB.NET Aufbau

Sie verfügen nach der Schulung über fundierte Kenntnisse in der Arbeit mit objektorientierten Modellen in VB.NET und können wiederverwendbare Komponenten eigenständig erzeugen.

C# 2017/2015/2013 Aufbau

In dieser Schulung lernen Sie fortgeschrittene Techniken im Bereich .Net C#. Dabei stehen neben den eigentlichen Techniken auch architektonische Aspekte im Mittelpunkt.

public static readonly RoutedEvent MySpecialClickEvent = EventManager.RegisterRoutedEvent("MySpecialClick",
                                                                                              RoutingStrategy.Bubble,
                                                                                              typeof (RoutedEventArgs),
                                                                                              typeof (MainWindow));
        public event RoutedEventHandler MySpecialClick
        {
            add
            {
                this.AddHandler(MySpecialClickEvent, value);
            }
            remove
            {
                this.RemoveHandler(MySpecialClickEvent, value);
            }
        }
Abgelegt unter Wpf, RoutedEvent, Event, Bubbling, Tunneling.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!