User Tools

Site Tools


kapitel_1

Kapitel 1.4 - Konzepte

1.4.3 Events

In WPF gibt es drei unterschiedliche Events:

  • Tunnel
  • Bubble
  • Direct

Das Tunnel Event wird von dem auslösenden Element, den Visualtree abwärts zu dem letzten Child Element geleitet. Auf dem Weg nach unten wird in allen elementen das Event ausgelöst. Tunnel Events sind bei Standart Controls die Preview* Events. Z.Bsp. das PreviewClick - Event.

Das Bubble Event macht es im Vergleich zum Tunnel genau umgekehrt. Beginnend von dem Ausgelösenden Control wird es nach oben weitergereicht, es blubbert quasi nach oben. Diese Events werden meist ohne das Preview benannt. z.Bsp das Click - Event.

Das Direct event wird nur auf dem ausgelösten Element gemeldet, lässt sich aber im Vergleich zu den Standart .Net Events auch für Trigger nutzen.

Routed Events können auch als attached Events Visuellen Objekten “angeheftet” werden. Zum Beispiel können einem Fenster das mehrere Buttons enthält. Das Button.ClickEvent zugewiesen werden. Wird nun ein Button angeclickt, blubbert das Event bis zum Fenster und ruft den dort definierten EventHandler auf. Allerdings ist das sender Objekt in dem Fall das Window, der angeklickte Button steckt in dem SourceProperty der RoutedEventsArgs.

1.4.4 Commands

Commands dienen dazu die Logik weiter von der visuellen Schicht zu trennen. Ein Command ist ein Objekt einer Klasse die das ICommand Interface implementiert. Das Interface schreibt vor das die Methoden

  • Execute
  • CanExecute
  • CanExecuteChanged

implementiert werden.

Execute führt das Command aus. CanExecute gibt einen Boolschen Wert zurück der besagt ob das Command ausgeführt werden kann oder nicht. CanExecuteChanged wird ausgelöst wenn sich CanExecute ändert.

Solch ein Command kann man nun anstelle eines Eventhandlers mit dem CommandProperty eines Controls verbinden.

WPF selbst bietet schon vorimplementierte Commands an, wie zum Beispiel die Cut,Copy und Paste Befehle.

Back

kapitel_1.txt · Last modified: 2014/03/24 07:57 by miguel_m