Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 2 Commands (1) s.a.

Ähnliche Präsentationen


Präsentation zum Thema: "Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 2 Commands (1) s.a."—  Präsentation transkript:

1

2 Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 2 Commands (1) s.a. Zweck: Commands dienen der Entkopplung der GUI von der Anwendungslogik. Unterschiedliche Quellen (Button, Menü, Tastenkombination, etc.) können dieselbe Programmlogik aufrufen und diese auf verschiedene Ziele anwenden (z.B. Copy, Cut, Paste). Mit Hilfe von Commands kann gesteuert und überwacht werden, ob in der momentanen Situation eine Aktion ausgeführt werden kann. Entsprechend kann ein Button oder Menüpunkt aktiviert bzw. deaktiviert werden. Commands implementieren die ICommand -Schnittstelle mit den Methodenschnittstellen Execute und CanExecute sowie dem Event CanExecuteChanged.

3 Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 3 Commands (2) Die WPF-Klassen RoutedCommand bzw. RoutedUICommand (hat zusätzlich ein Text-Property) implementieren ICommand. Sie können vom Entwickler genutzt werden, um die spezifische Logik zu implementieren. Konzept: command: Befehl, der ausgeführt werden soll, z.B. Paste command source: Objekt, welches den Befehl aufruft, z.B. MenuItem command target: Objekt, für das der Befehl ausgeführt wird, z.B. TextBox Command binding: Objekt, das dem Befehl die Befehlslogik zuordnet, z.B. Window, auch CommandHandler genannt. CommandBinding enthält die EreignisHandler für die Ereignisse Executed und CanExecute.

4 Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 4 Commands (3) Die Methoden Execute und CanExecute eines RoutedCommand enthalten nicht die Anwendungslogik des Befehls, sondern lösen Routingereignisse aus, die die Elementstruktur per Tunneling und Bubbling durchlaufen, bis sie auf ein Objekt mit einer CommandBinding treffen. Dabei wird ein RoutedCommand an Ereignishandler gebunden, die den Befehl implementieren.ExecuteCanExecuteRoutedCommand CommandBinding Das Routing beginnt beim command target. Wenn ein Command Handler aufgerufen wurde, wird kein weiterer mehr ausgeführt. command target kann bei der command source angegeben werden. Ist command target nicht definiert, wird das Element mit dem Tastaturfokus als command target verwendet. Mittels CommandParameter können dem Command für den Aufruf Daten mitgegeben werden.

5 Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 5 Commands (4) WPF stellt eine Reihe von vordefinierten Routed Commands in Befehlsbibliotheken zur Verfügung, für die nur noch die Logik des Befehls implementiert werden muss. Die Befehlsbibliotheken kapseln die Commands in Klassen wie ApplicationCommands, … Einige Controls stellen auch die Implementierungslogik für viele Commands in der Befehlsbibliothek zur Verfügung (built-in command binding), z.B. die TextBox für Copy, Paste, Cut, Undo, Redo.

6 Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 6 Implementierung von vordefinierten RoutedCommands Um ein Command bei einer command Source zu deklarieren, wird das Command-Property mit dem Namen des Commands belegt. Das Command-Property wird beim MenuItem, Button, Radio­Button, CheckBox, Hyperlink, InputBinding (z.B. F1) u.a. Controls unterstützt. Enthält ein Control die Implementierungslogik für diesen Command, wird der Befehl auf dieses angewandt, wenn es den Fokus erhält. Muss die Logik implementiert werden, erfolgt ein CommandBinding. Speichern Ein übergeordnetes Element fungiert als Command Handler:... Die EventHandler OnCommandCanExecute und OnCommandExecute sind zu implementieren.

7 Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 7 Erstellung eines RoutedUICommand In der Klasse MainWindow werden ein Objekt der Klasse RoutedUICommand instanziiert: public static readonly RoutedUICommand cmd = new RoutedUICommand("Anzeige", "cmd", typeof(MainWindow)); und die EventHandler implementiert. In XAML: Implementierung eigener Commands Ableitung einer Klasse aus ICommand und Implementierung der Methoden CanExecute und Execute sowie des Events CanExecuteChanged. In XAML: … < Button Command="{StaticResource MeinCommand}" …

8 Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 8 Solution 8_Commands A_BuiltInCommandBinding B_RoutedCommands C_Parameter D_Target E_InputGestures F_ImplementICommand


Herunterladen ppt "Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 2 Commands (1) s.a."

Ähnliche Präsentationen


Google-Anzeigen