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

Inhaltsverzeichnis
Vorwort zur 6. Auflage
1 Allgemeine Einführung in .NET
2 Grundlagen der Sprache C#
3 Das Klassendesign
4 Vererbung, Polymorphie und Interfaces
5 Delegates und Ereignisse
6 Strukturen und Enumerationen
7 Fehlerbehandlung und Debugging
8 Auflistungsklassen (Collections)
9 Generics – Generische Datentypen
10 Weitere C#-Sprachfeatures
11 LINQ
12 Arbeiten mit Dateien und Streams
13 Binäre Serialisierung
14 XML
15 Multithreading und die Task Parallel Library (TPL)
16 Einige wichtige .NET-Klassen
17 Projektmanagement und Visual Studio 2012
18 Einführung in die WPF und XAML
19 WPF-Layout-Container
20 Fenster in der WPF
21 WPF-Steuerelemente
22 Elementbindungen
23 Konzepte von WPF
24 Datenbindung
25 Weitere Möglichkeiten der Datenbindung
26 Dependency Properties
27 Ereignisse in der WPF
28 WPF-Commands
29 Benutzerdefinierte Controls
30 2D-Grafik
31 ADO.NET – Verbindungsorientierte Objekte
32 ADO.NET – Das Command-Objekt
33 ADO.NET – Der SqlDataAdapter
34 ADO.NET – Daten im lokalen Speicher
35 ADO.NET – Aktualisieren der Datenbank
36 Stark typisierte DataSets
37 Einführung in das ADO.NET Entity Framework
38 Datenabfragen des Entity Data Models (EDM)
39 Entitätsaktualisierung und Zustandsverwaltung
40 Konflikte behandeln
41 Plain Old CLR Objects (POCOs)
Stichwort

Download:
- Beispiele, ca. 62,4 MB

Buch bestellen
Ihre Meinung?

Spacer
Visual C# 2012 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual C# 2012

Visual C# 2012
Rheinwerk Computing
1402 S., 6., aktualisierte und erweiterte Auflage 2013, geb., mit DVD
49,90 Euro, ISBN 978-3-8362-1997-6
Pfeil 26 Dependency Properties
Pfeil 26.1 Die Charakteristik von Abhängigkeitseigenschaften
Pfeil 26.2 Den Wert einer Abhängigkeitseigenschaft bilden
Pfeil 26.3 Definition einer Dependency Property
Pfeil 26.3.1 Registrieren einer Abhängigkeitseigenschaft
Pfeil 26.3.2 Der Eigenschaftswrapper
Pfeil 26.3.3 Die Eigenschaftsmetadaten
Pfeil 26.3.4 Freigabe des spezifischen Eigenschaftswertes
Pfeil 26.3.5 Vererbung von Abhängigkeitseigenschaften
Pfeil 26.4 Validieren einer Abhängigkeitseigenschaft
Pfeil 26.4.1 Validieren mit »ValidateValueCallback«
Pfeil 26.4.2 Validieren mit »CoerceValueCallback«
Pfeil 26.5 Angehängte Eigenschaften (Attached Property)
Pfeil 26.5.1 Angehängte Eigenschaften zur Laufzeit ändern

26 Dependency PropertiesZur nächsten Überschrift

In den vorhergehenden Abschnitten haben Sie einen Überblick darüber erhalten, wie die Struktur und der Aufbau einer WPF-Anwendung aussehen. Sie haben erfahren, dass die Benutzeroberfläche mit XAML beschrieben wird, und die Syntax von XAML gelernt. Einige WPF-spezifische Techniken habe ich Ihnen auch gezeigt, beispielsweise die Styles und die Datenbindungen.

Widmen wir uns nun einem Thema, das im Verlauf des WPF-Teils dieses Buches immer wieder erwähnt wurde, aber noch nicht tiefergehend behandelt worden ist: die Abhängigkeitseigenschaften, im Englischen auch Dependency Properties. Wie Sie wissen, sind Dependency Properties im Zusammenhang mit Datenbindungen, Styles und auch Animationen zwingend notwendig. Viele mit der WPF eingeführte Programmiertechniken setzen also Abhängigkeitseigenschaften voraus.

Im engen Zusammenhang mit den Abhängigkeitseigenschaften stehen auch die angehängten Eigenschaften (Attached Properties). Dabei handelt es sich um Eigenschaften, die nicht in der Klasse eines Elements definiert sind, sondern von einer hierarchisch übergeordneten Komponente bereitgestellt werden. Die Eigenschaften Grid.Row und Grid.Column sind typische angehängte Eigenschaften, die uns immer dazu dienten, ein Element in einer bestimmten Zelle eines Grid zu positionieren. Angehängte Eigenschaften werden uns zum Schluss dieses Kapitels beschäftigen.


Galileo Computing - Zum Seitenanfang

26.1 Die Charakteristik von AbhängigkeitseigenschaftenZur vorigen Überschrift

Mit CLR-Eigenschaften haben wir schon viel gearbeitet. Sie sind uns vertraut geworden. Wir wissen, dass eine CLR-Eigenschaft ein private oder protected deklariertes Feld ist, wobei der Zugriff auf den Wert des Feldes über die in einer Eigenschaftsmethode definierten get- und set-Zweige erfolgt. Ferner wissen wir, dass jedes Objekt eines bestimmten Typs die gleichen Eigenschaften aufweist, die für jedes einzelne Objekt separat gespeichert werden.

Bei einer genauen Analyse muss man feststellen, dass diese Art der Objektbeschreibung unnötig viele Speicherressourcen in Anspruch nimmt. Warum das? Betrachten wir zur Verdeutlichung exemplarisch eine Schaltfläche (Typ Button) aus der WinForm-API. Mit ca. 50 verschiedenen Eigenschaften wird eine Schaltfläche beschrieben. Enthält ein WinForm drei davon, werden ungefähr 150 Daten für die drei Objekte im Speicher vorgehalten. Stellen wir uns nun die Frage, wie viele Eigenschaften tatsächlich für jedes der drei Button-Objekte individuell eingestellt sind: die Positionswerte, die Beschriftung, wahrscheinlich auch die Größe. Die meisten Eigenschaften behalten jedoch ihren ursprünglichen Standardwert bei. Wäre es nicht ressourcenschonender, alle unveränderten Standardwerte in einem zentralen Speicher allen Schaltflächen gemeinsam zur Verfügung zu stellen? Die WinForm-API kann diese Überlegung nicht umsetzen, die WPF mit den Abhängigkeitseigenschaften hingegen schon.

Die Abhängigkeitseigenschaften der WPF gehen mit den zur Verfügung stehenden Ressourcen also ausgesprochen ökonomisch um. Solange die Eigenschaft eines Objekts nicht individuell eingestellt wird, wird dafür auch kein Speicherplatz in Anspruch genommen und der Wert einem allgemeinen »Reservoir« entnommen. Erst wenn die Eigenschaft eines Objekts individuell eingestellt wird, stellt das System dafür lokale Ressourcen zur Verfügung.

Wir brauchen uns keine großen Gedanken über die Verwaltung der Abhängigkeitseigenschaften zu machen. Das WPF-Subsystem erledigt alle damit im Zusammenhang stehenden Aufgaben für uns. Wir müssen lediglich die Eigenschaft als Dependency Property dem System bekannt geben, besser ausgedrückt, wir müssen sie registrieren. Wie das gemacht wird und was dabei zu berücksichtigen ist, erfahren Sie in diesem Kapitel.

Die WPF unterstützt nicht nur Abhängigkeitseigenschaften, sondern darüber hinaus auch die herkömmlichen CLR-Eigenschaften. Diese sind jedoch eindeutig in der Minderheit. Einer Eigenschaft kann man auf den ersten Blick nicht ansehen, ob sie als CLR- oder Abhängigkeitseigenschaft implementiert ist. Im Zweifelsfall müssen Sie das in der Dokumentation nachlesen.



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 C# 2012

Visual C# 2012
Jetzt bestellen


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

 Buchempfehlungen
Zum Katalog: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Katalog: Windows Presentation Foundation






 Windows Presentation
 Foundation


Zum Katalog: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Katalog: C++ Handbuch






 C++ Handbuch


Zum Katalog: C/C++






 C/C++


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2013
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.


[Rheinwerk Computing]

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