Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einführung
2 Grundlagen der Sprachsyntax
3 Klassendesign
4 Weitere Datentypen
5 Multithreading
6 Collections und LINQ
7 Eingabe und Ausgabe
8 Anwendungen: Struktur und Installation
9 Code erstellen und debuggen
10 Einige Basisklassen
11 Windows-Anwendungen erstellen
12 Die wichtigsten Steuerelemente
13 Tastatur- und Mausereignisse
14 MDI-Anwendungen
15 Grafiken mit GDI+
16 Drucken
17 Entwickeln von Steuerelementen
18 Programmiertechniken
19 WPF – Grundlagen
20 Layoutcontainer
21 WPF-Steuerelemente
22 Konzepte von WPF
23 Datenbankverbindung mit ADO.NET
24 Datenbankabfragen mit ADO.NET
25 DataAdapter
26 Offline mit DataSet
27 Datenbanken aktualisieren
28 Stark typisierte DataSets
A Anhang: Einige Übersichten
Stichwort

Jetzt Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Visual Basic 2008 von Andreas Kuehnel, Stephan Leibbrandt
Das umfassende Handbuch
Buch: Visual Basic 2008

Visual Basic 2008
3., aktualisierte und erweiterte Auflage, geb., mit DVD
1.323 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1171-0
Pfeil 22 Konzepte von WPF
Pfeil 22.1 Abhängige und angehängte Eigenschaften
Pfeil 22.1.1 Abhängige Eigenschaften
Pfeil 22.1.2 Angehängte Eigenschaften
Pfeil 22.2 Ressourcen
Pfeil 22.2.1 Definition
Pfeil 22.2.2 Zeitpunkt der Wertbestimmung
Pfeil 22.2.3 Abrufen von Systemressourcen
Pfeil 22.3 Stile
Pfeil 22.3.1 Einfache Stile
Pfeil 22.3.2 Typisierte Stile
Pfeil 22.4 Trigger
Pfeil 22.4.1 Eigenschaftstrigger
Pfeil 22.4.2 Ereignistrigger
Pfeil 22.4.3 Datentrigger
Pfeil 22.5 Kommandos
Pfeil 22.5.1 Vordefiniert
Pfeil 22.5.2 Beispielanwendung
Pfeil 22.5.3 Kommando-Ziel
Pfeil 22.5.4 Kommandos an Ereignisse binden
Pfeil 22.5.5 Kommandos programmieren
Pfeil 22.6 Datenbindung
Pfeil 22.6.1 Einfache Datenbindung
Pfeil 22.7 Bindungsarten
Pfeil 22.7.1 Aktualisierung der Quelle
Pfeil 22.7.2 Datenbindungsquellen
Pfeil 22.7.3 Auflistungen anbinden


Rheinwerk Computing - Zum Seitenanfang

22.5 Kommandos Zur nächsten ÜberschriftZur vorigen Überschrift

Viele Operationen brauchen Sie in fast jeder Anwendung: das Kopieren von Daten in die Zwischenablage, das Ausschneiden von markiertem Text, das Speichern von Änderungen usw. WPF vereinfacht die Codierungsarbeit dadurch, dass Ihnen eine große Zahl vorgefertigter Operationen zur Verfügung gestellt wird. Entwickeln Sie beispielsweise ein Menü mit dem Hauptmenüpunkt Bearbeiten und den untergeordneten Elementen Kopieren, Ausschneiden und Einfügen, brauchen Sie nur auf die vordefinierten Kommandos zurückzugreifen.


Rheinwerk Computing - Zum Seitenanfang

22.5.1 Vordefiniert Zur nächsten ÜberschriftZur vorigen Überschrift

Die von WPF bereitgestellten Kommandos lassen sich in sechs Kategorien unterteilen. Jede Kategorie wird durch eine Klasse beschrieben:

  • System.Windows.Annotations.AnnotationService
  • System.Windows.Input.ApplicationCommands
  • System.Windows.Input.ComponentCommands
  • System.Windows.Documents.EditingCommands
  • System.Windows.Input.MediaCommands
  • System.Windows.Input.NavigationCommands

Jedes Kommando ist in einer klassengebundenen Eigenschaft vom Typ RoutedUICommand gespeichert. Um die Übersicht zu behalten, zeige ich in Tabelle 22.1 anhand einiger wichtiger Vertreter der Klasse ApplicationCommands den Umgang mit Kommandos.


Tabelle 22.1 Vordefinierte Kommandos der Klasse »ApplicationCommands«

Kategorie Kommandos

Dateien

Close, New, Open, Save, SaveAs

Drucken

CancelPrint, Print, PrintPreview

Bearbeiten

Copy, CorrectionList, Cut, Delete, Paste, Redo, SelectAll, Undo

Verschiedenes

ContextMenu, Find, Help, NotACommand, Properties, Replace, Stop



Rheinwerk Computing - Zum Seitenanfang

22.5.2 Beispielanwendung Zur nächsten ÜberschriftZur vorigen Überschrift

Das folgende Beispiel zeigt ein Fenster mit zwei Textboxen und einem Menü mit den Punkten Datei und Bearbeiten:


'...\WPFKonzepte\Kommandos\Anwendung.xaml

<Window ...>
  <DockPanel>
    <Menu DockPanel.Dock="Top" Name="mnuMenu">
      <MenuItem Header="_Datei">
        <MenuItem Command="ApplicationCommands.New" />
        <MenuItem Command="ApplicationCommands.Open">
          <MenuItem.Icon>
            <Image Source="Bilder/DateiÖffnen.png" />
          </MenuItem.Icon>
        </MenuItem>
        <Separator />
        <MenuItem Command="ApplicationCommands.Save">
          <MenuItem.Icon>
            <Image Source="Bilder/DateiSpeichern.png" />
          </MenuItem.Icon>
        </MenuItem>
        <MenuItem Command="ApplicationCommands.SaveAs" />
        <Separator />
        <MenuItem Header="_Senden an">
          <MenuItem Header="_Mail" />
          <MenuItem Header="_Desktop" />
        </MenuItem>
        <MenuItem Header="_Beenden" />
      </MenuItem>
      <MenuItem Header="_Bearbeiten">
        <MenuItem Command="ApplicationCommands.Copy" />
        <MenuItem Command="ApplicationCommands.Cut" />
        <MenuItem Command="ApplicationCommands.Paste" />
      </MenuItem>
    </Menu>
    <StackPanel>
      <TextBox Name="txtOben" Height="100"></TextBox>
      <TextBox Name="txtUnten" Height="100"></TextBox>
    </StackPanel>
  </DockPanel>
</Window>

Die Menüpunkte werden automatisch beschriftet und haben die üblichen Shortcuts (siehe Abbildung 22.4).

Wenn Sie die Anwendung starten, funktioniert das gesamte Menü Bearbeiten bereits einwandfrei. Sie können Text markieren und kopieren oder ausschneiden und an anderer Stelle einfügen – in derselben Textbox oder von einer in die andere. Kann eine Operation nicht ausgeführt werden, zum Beispiel, weil sich keine Daten in der Zwischenablage befinden oder weil in der fokussierten TextBox keine Zeichen markiert sind, werden die entsprechenden Menüpunkte deaktiviert – all das, ohne eine Zeile Code zu schreiben.

Abbildung 22.4 Beispiel zu »ApplicationCommands«


Rheinwerk Computing - Zum Seitenanfang

22.5.3 Kommando-Ziel Zur nächsten ÜberschriftZur vorigen Überschrift

Standardmäßig ist das Ziel eines Kommandos das in dem Moment aktive Steuerelement. Bei Bedarf können Sie aber auch ein anderes Ziel festlegen. Neben dem Command-Attribut muss dann auch noch das Attribut CommandTarget angegeben werden. Dabei muss wieder die Binding-Syntax verwendet werden, wie das folgende Beispiel zeigt:

...
<MenuItem Header="_Bearbeiten">
  <MenuItem Command="ApplicationCommands.Copy"/>
  <MenuItem Command="ApplicationCommands.Cut" />
  <MenuItem Command="ApplicationCommands.Paste"
            CommandTarget="{Binding ElementName=txtUnten}" />
</MenuItem>
...

Rheinwerk Computing - Zum Seitenanfang

22.5.4 Kommandos an Ereignisse binden Zur nächsten ÜberschriftZur vorigen Überschrift

Für die dateibezogenen Kommandos gibt es keine allgemeingültige Verhaltensweise. Daher sind sie standardmäßig mit keinem Code verbunden, und die Menüpunkte sind deaktiviert. Die Bindung eines Kommandos an einen Ereignishandler übernimmt ein Objekt vom Typ CommandBinding. Ein CommandBinding-Objekt muss mit seiner Eigenschaft Command an ein Kommando vom Typ Command gebunden werden. Üblicherweise werden diese Objekte im Element Window angegeben.

Das Ereignis Executed von CommandBinding wird zur Ausführung der gewünschten Operation ausgelöst, und mit CanExecute wird optional geprüft, ob der Befehl ausgeführt werden kann. Das Ergebnis der Prüfung speichern Sie innerhalb des Ereignishandlers in der Eigenschaft CanExecute des zweiten Parameters, der vom Typ CanExecuteRoutedEventArgs ist. Mit Can-Execute=False wird das Kommando deaktiviert.

Wir ergänzen die Anwendung so, dass das komplette Menü mit Kommandos verbunden ist. Dabei sollen die Menüpunkte Speichern und Speichern als nur dann aktiviert werden, wenn die obere der beiden Textboxen nicht leer ist.


'...\WPFKonzepte\Kommandos\Anwendung.xaml

<Window ...>
  <Window.CommandBindings>
   <CommandBinding Command="ApplicationCommands.New" Executed="Neu" />
   <CommandBinding Command="ApplicationCommands.Open" Executed="Öffnen" />
   <CommandBinding Command="ApplicationCommands.Save"
                   Executed="Speichern" CanExecute="KannSpeichern"/>
   <CommandBinding Command="ApplicationCommands.SaveAs"
                   Executed="SpeichernAls" CanExecute="KannSpeichern" />
  </Window.CommandBindings>
  <DockPanel>
  ...
</Window>

In der Code-Behind-Datei sind die Operationen implementiert. Um das Beispiel einfach zu halten, werden die Aktionen durch Meldungsfenster simuliert.

Partial Public Class Anwendung
  Private Sub Neu(sender As Object, e As ExecutedRoutedEventArgs)
    MessageBox.Show("Menüpunkt 'Neu'")
  End Sub

  Private Sub Öffnen(sender As Object, e As ExecutedRoutedEventArgs)
    MessageBox.Show("Menüpunkt 'Öffnen'")
  End Sub

  Private Sub Speichern(sender As Object, e As ExecutedRoutedEventArgs)
    MessageBox.Show("Menüpunkt 'Speichern'")
  End Sub

  Private Sub SpeichernAls(sender As Object, e As ExecutedRoutedEventArgs)
    MessageBox.Show("Menüpunkt 'Speichern als'")
  End Sub

  Private Sub KannSpeichern(sender As Object, e As CanExecuteRoutedEventArgs)
    e.CanExecute = txtOben.Text <> ""
  End Sub

End Class

Rheinwerk Computing - Zum Seitenanfang

22.5.5 Kommandos programmieren topZur vorigen Überschrift

Kommandos können Sie auch im Code erzeugen. Der entsprechende Ereignishandler wird mit der bekannten Notation an das Ereignis gebunden.

Private Sub Laden(sender As Object, e As RoutedEventArgs) _
Handles MyBase.Loaded
  Dim cmdSave As New CommandBinding(ApplicationCommands.Save)
  AddHandler cmdSave.Executed, AddressOf Speichern
End Sub

Sie können die Execute-Methode eines Kommandos auch aufrufen, um das Ereignis auszulösen. Der erste Parameter ist ein benutzerdefiniertes Objekt, der zweite die Angabe des Kommandoziels.

Private Sub button1_Click(sender As Object, e As RoutedEventArgs)
  ApplicationCommands.Save.Execute(Nothing, txtOben)
End Sub

Hier ist das Kommandoziel eine Komponente namens txtOben.



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Visual Basic 2008
Visual Basic 2008
Jetzt Buch bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Visual Basic 2012






 Visual Basic 2012


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Rheinwerk-Shop: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Rheinwerk-Shop: Windows Presentation Foundation






 Windows Presentation
 Foundation


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2009
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern