Galileo Computing < openbook > Galileo 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

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

Die Beherrschung dynamisch aktualisierter Steuerelemente und die Erzeugung eines einheitlichen Designs schaffen professionelle Anwendungen, deren Funktio-nalität durch Kommandos leichter zu organisieren ist.

22 Konzepte von WPF


Galileo Computing - Zum Seitenanfang

22.1 Abhängige und angehängte Eigenschaften Zur nächsten ÜberschriftZur vorigen Überschrift

WPF erweitert die Eigenschaften der Common Language Runtime (CLR) um zwei besondere Gruppen:

  • Abhängige Eigenschaften (Dependency Properties)
  • Angehängte Eigenschaften (Attached Properties)

Beide werden ähnlich wie »normale« Eigenschaften verwendet, aber anders deklariert.


Galileo Computing - Zum Seitenanfang

22.1.1 Abhängige Eigenschaften Zur nächsten ÜberschriftZur vorigen Überschrift

Stellen Sie sich vor, im Auslieferungslager eines Unternehmens befindet sich der Artikel A. Mit dem Artikel ist ein bestimmter Verkaufspreis verknüpft. Wird der Artikel ins Ausland verkauft, in dem eine andere Währung Zahlungsmittel ist, muss der Verkaufspreis dynamisch an den aktuellen Wechselkurs angepasst werden. Damit ist der Verkaufspreis eine abhängige Eigenschaft.

Abhängige Eigenschaften haben gegenüber herkömmlichen Eigenschaften einige Vorteile:

  • Die Werte werden automatisch aktualisiert.
  • Zur Signalisierung von Wertänderungen werden Callback-Methoden verwendet.
  • Es kann eine interne Validierung erfolgen.
  • Es können Standardwerte definiert werden.

Die Einführung von abhängigen Eigenschaften war notwendig, um die vielen WPF-Features realisieren zu können, da einige davon abhängen, ob sich im System oder in der Anwendung Eigenschaftswerte verändert haben. Zu den Features, die grundlegend auf abhängige Eigenschaften angewiesen sind, gehören beispielsweise die Datenbindung und Animationen.

Das folgende Beispiel zeigt die Definition einer abhängigen Eigenschaft. Die Klasse Linie ist von DependencyObject abgeleitet.

Class Linie : Inherits DependencyObject
  ' abhängige Eigenschaft selbst
  Public Shared ReadOnly LengthProperty As DependencyProperty
  ' Registrieren der abhängigen Eigenschaft
  Shared Sub New()
    Linie.LengthProperty = DependencyProperty.Register( _
          "Length", GetType(Integer), GetType(Line), _
          New FrameworkPropertyMetadata(10, _
          New PropertyChangedCallback(AddressOf Linie.OnLengthChanged)))
  End Sub
  ' Schnittstelle der Eigenschaft nach draußen
  Public Property Length() As Integer
    Get
      Return CType(GetValue(Linie.LengthProperty), Integer)
    End Get
    Set(ByVal value As Integer)
      SetValue(Linie.LengthProperty, value)
    End Set
  End Property
  ' Callback-Methode
  Private Shared Sub OnLengthChanged(ByVal dpObj As DependencyObject, _
                     ByVal e As DependencyPropertyChangedEventArgs)
    ' ...
  End Sub
End Class

Abhängige Eigenschaften sind vom Typ DependencyProperty. Sie müssen als öffentliche, klassengebundene Felder definiert werden. Die Verwaltung abhängiger Eigenschaften wird vom WPF-Subsystem übernommen. Aus diesem Grund müssen abhängige Eigenschaften mit der Methode Register registriert werden. Die Methodenparameter sind der Name der Eigenschaft (hier: Length), der Typ der Eigenschaft und die Klasse, die die abhängige Eigenschaft beherbergt. Zudem werden bei der Registrierung ein Standardwert und eine Rückrufmethode festgelegt.

Der Zugriff auf die Eigenschaft erfolgt über GetValue und SetValue, die öffentliche Methoden der Klasse DependencyObject sind. Vor dem ersten Aufruf von SetValue gibt GetValue den Standardwert zurück. Sie dürfen GetValue und SetValue auch direkt benutzen und gar keine Eigenschaft definieren.

Von der Callback-Methode schließlich werden alle Wertänderungen überwacht.


Galileo Computing - Zum Seitenanfang

22.1.2 Angehängte Eigenschaften topZur vorigen Überschrift

In hierarchischen Datenstrukturen besteht eine Beziehung zwischen den verschiedenen Ebenen, zum Beispiel wie ein Container seine Komponenten anordnet. Dies erfordert eine Koordination durch das übergeordnete Element, und die notwendige Information, zum Beispiel der Randabstand, wird im Elternelement gespeichert. Im XAML-Code könnte dies als Liste im Elternelement realisiert sein mit einem Eintrag für jedes Kindelement. Dann müsste aber bei jeder Änderung des Containerinhalts diese Liste manuell mit synchronisiert werden. Eleganter ist die Spezifikation der Eigenschaft im Kindelement unter Angabe des betroffenen Elternelements. Als Nebeneffekt bleibt dieses übersichtlicher.

Diese Spezifikation wird angehängte Eigenschaft (Attached Property) genannt. In WPF sind diese Eigenschaften meistens gleichzeitig abhängige Eigenschaften. In der folgenden Syntax sind die kursiv gesetzten Teile kontextabhängig:


Elternelement.Eigenschaft="Wert"
<Elternelement.Eigenschaft>...</Elternelement.Eigenschaft>


Hinweis
Durch angehängte Eigenschaften haben viele Komponenten mehr Eigenschaften, als aus der Klassendefinition ersichtlich ist.


Im folgenden Beispiel wird eine TextBox in einem Grid positioniert. Die Eigenschaften Grid.Column und Grid.Row werden der TextBox vom Grid zur Verfügung gestellt.

<Grid>
  <TextBox Grid.Column="0" Grid.Row="0" Name="txtText" >Hallo</TextBox>
</Grid>

Sie können die Position der TextBox auch mittels Code festlegen, müssen dann aber die Eigenschaften SetColumn und SetRow des Grid-Controls aufrufen (und nicht der TextBox):

Grid.SetColumn(txtText, 1)
Grid.SetRow(txtText, 2)


Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück
  Zum Katalog
Zum Katalog: Visual Basic 2008
Visual Basic 2008
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Visual Basic 2012






 Visual Basic 2012


Zum Katalog: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Katalog: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Katalog: Windows Presentation Foundation






 Windows Presentation
 Foundation


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
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