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 5 Folie 2 Dependency Properties s.a.

Ähnliche Präsentationen


Präsentation zum Thema: "Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 Dependency Properties s.a."—  Präsentation transkript:

1

2 Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 Dependency Properties s.a. Dependency Properties stellen eine Erweiterung der klassischen Properties dar und bieten damit weitere Funktionalitäten: automatische Aktualisierung der abhängigen Objekte Property-Vererbung über den Visual Tree eine integrierte Validierung die Deklaration von Standardwerten den Aufruf von Callback-Methoden, wenn Wertänderungen aufgetreten sind Animationen Data Binding Styles Attached Properties sind eine spezielle Variante der Dependency Properties. Dabei werden die Werte eines Eltern-Elements im Kind- Element gesetzt.

3 Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 3 Dependency Property System Eine Klasse die von der Klasse DependencyObject (s.a. us/library/system.windows.dependencyobject(VS.100).aspx#inheritanceContinued ) erbt, kann am Dependency Property System partizipieren, kann also Dependency Properties besitzen. us/library/system.windows.dependencyobject(VS.100).aspx#inheritanceContinued Viele Properties der Controls sind Dependency Properties. Sie lassen sich aber wie normale Properties nutzen, weil sie durch wrapper versteckt werden. Dependency Properties werden bei einem Element/Objekt gesetzt und gelten dann für alle untergeordneten Controls Ausnahme 1: Vererbt wird nur, wenn FrameworkPropertyMetadata.Inherits für dieses Dependency Property auch auf true gesetzt ist. Ausnahme 2: Einige Controls wie StatusBar, Menu und ToolTip setzen ihre font-Properties intern. Sie werden bestimmt durch die Einstellungen des Control Panel (Systemeinstellungen).

4 Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 4 Data Binding s.a. Dependency Properties können an verschiedene Arten von Datenquellen gebunden werden. Bei den Daten kann es sich um CLR-Objekte oder XML-Daten handeln. s.a. Das Benachrichtigungssystem von WPF kann die Aktualisierung von Daten automatisieren. Modell (Quelle: s.o.) mit binding target object, target property, binding source und path to the value, data flow, UpdateSourceTrigger

5 Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 5 Erstellen einer Bindung in XAML unter Verwendung der Markuperweiterung Binding Angabe der Bindungsquelle mittels einer der Alternativen: ElementName (Bindung an andere Elemente) Source (in einzelnen Bindungsdeklarationen) DataContext (für das jeweilige Element oder ein übergeordnetes) RelativeSource (Quelle relativ zum Ziel, z.B. Self) Angabe des Pfades zum Wert mittels Path oder Xpath (XML-Daten) sofern der Wert nicht identisch ist mit dem binding source object Evtl. setzen der Mode-Eigenschaft OneWay (default) Änderungen der source property führen automatisch zur Änderung der target property TwoWay gegenseitige Automatisierung OneWayToSource Änderungen der target property führen automatisch zur Änderung der source property

6 Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 6 Ressourcen s.a. WPF-Ressourcen erlauben die Wiederverwendung von Objekten und Werten. Binäre Ressourcen: Dateien, die Bilder, Musik, Videos in Form von binären Datenströmen enthalten, und in die Assembly der Applikation eingebettet werden, z.B. Logische Ressourcen: Objekte einer Klasse werden (meist in XAML) bei einem WPF-Element definiert und an verschiedenen Stellen im XAML-Dokument referenziert. Als Ressource lässt sich ein Objekt beliebiger Klassen verwenden, allerdings muss die Klasse einen parameterlosen Konstruktor besitzen. Elemente können statisch oder dynamisch (nur bei Dependency Property) auf die Ressourcen zugreifen.

7 Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 7 Logische Ressourcen Ein FrameworkElement verfügt über ein Resources-Property vom Typ ResourceDictionary. Alle abgeleiteten Controls können damit einen Resources-Abschnitt definieren, z.B. Logische Ressourcen in App.xaml stehen anwendungsweit zur Verfügung. Die Ressource muss bekannt sein, bevor sie benutzt wird. Kinderelemente können eine bestimmte Ressource mit der StaticResource - oder DynamicResource -Markup-Extension über den key der Ressource referenzieren, z.B. Nach der Ressource wird aufwärts im Logical Tree, danach im Application-Objekt und danach bei den systemweiten Ressourcen (SystemParameters, SystemFonts, SystemColors, theme-spezifische Ressourcen) gesucht.

8 Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 8 INotifyPropertyChanged-Schnittstelle Implementiert eine Klasse die INotifyPropertyChanged-Schnittstelle können Benachrichtigungen über Änderungen einer Property an ein gebundenes Steuerelement übermittelt werden. Implementierung: Bildung einer Klasse, die INotifyPropertyChenged implementiert z.B. public class Artikel : INotifyPropertyChanged Deklaration des PropertyChanged event: public event PropertyChangedEventHandler PropertyChanged; Auslösen des Ereignisses, wenn sich ein Property ändert: PropertyChanged(this, new PropertyChangedEventArgs(propertyName));

9 Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 9 Data Binding an Collections Anzeige für Datenlisten: ItemsControl und abgeleitete Controls Zum Binden von ItemsControl an ein collection object dient die Property ItemsSource. Es kann jede collection verwandt werden, die die IEnumerable- Schnittstelle implementiert. Um automatische Aktualisierung zu erreichen, muss die collection die INotifyPropertyChanged-Schnittstelle implementieren. Dafür stellt WPF die ObservableCollection(T)-Klasse zur Verfügung. Zur vollständigen Aktualisierung aller Datenwerte muss auch ein Objekt in der collection die INotifyPropertyChanged-Schnittstelle implementieren.

10 Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 10 Collection Views Zwischen der Collection und dem ItemsControl liegt eine CollectionView. Sie stellt einen Zeiger auf das aktuell selektierte Objekt (CurrentItem property) bereit. Dieses Objekt kann in einem ContentControl angezeigt werden. Voraussetzung: IsSynchronizedWithCurrentItem="True" beim ItemsControl. Die CollectionView wird explizit vom Entwickler oder implizit von der WPF erstellt (DefaultView). Sie realisiert Sortier-, Filter- und Gruppierungsabfragen, ohne Änderung der source collection. Für das Filtern, Sortieren und Gruppieren in XAML wird ein CollectionViewSource-Element benutzt und an die Collection gebunden. Das ItemsControl wird an das CollectionViewSource- Element gebunden.

11 Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 11 Solution 5_DataBinding A_BindungAnSteuerelemente B_BindungAnRessourcen C_DataContext D_Benachrichtigung E_ObservableCollection F_MasterDetail G_Ressourcen H_Internationalisierung


Herunterladen ppt "Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 Dependency Properties s.a."

Ähnliche Präsentationen


Google-Anzeigen