DatenBinding mit WPF Holger Mester. Agenda  Einführung  Grundlagen des DataBindings  Quelle/Ziel  Interaktionsmodus  Einfaches Binden  Behandeln.

Slides:



Advertisements
Ähnliche Präsentationen
Web-Entwicklung mit ASP.NET 2.0 und Visual Studio 2005 Uwe Baumann Marketing Manager Developer Tools Microsoft Deutschland GmbH Oliver Scheer Developer.
Advertisements

SPS / WSS Entwicklung Martin Saternus Technical Student Consultant Microsoft Deutschland GmbH
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Präsentation Expression Web 2
DOM (Document Object Model)
DVG Klassen und Objekte
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Erweiterung von Eclipse als Entwicklungs-Plattform aus Sicht des Eclipse-Boardmitgliedes TogetherSoft Together auf Basis von Eclipse.
VFP Beispiele sowie Tools, Frameworks und Klassen
Grids - Datenblatt in Visual FoxPro
Uwe Habermann Venelina Jordanova dFPUG – Silverlight Wizard.
VFP Class Browser. © 1999 TMN-Systemberatung GmbH Einsatz des Class Browser n Managen von Klassen inklusive, ändern, umbenennen, löschen und umdefinieren.
Uwe Habermann WPF Avalon Formulare aus VFP verwenden Venelina Jordanova
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 3 Folie 2 Layout (1) Zur Anordnung der Steuerelemente.
InfoPoint vom 9. November Was ist Joomla? Theorie Installation Extensions Administration Demo.
Silverlight Eine Einführung. Agenda 1.Was ist Silverlight? 2.Die Silverlight Philosophie 3.Vorstellung des Szenarios 4.Einführendes Beispiel 5.Konzepte.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 3 Folie 2 Windows Presentation Foundation (WPF) s.a.
Wie und wann verwendet man WPF?
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt
Christian Moser Software Developer and UX Designer Zühlke Engineering AG
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Michael Köster User Experience Specialist Microsoft Corporation.
Game Development mit LUA Integration und Kommunikation von LUA mit C++ Referat von Paul van Hemmen Seminar: Reusable Content in 3D und Simulationssystemen.
Gruppe: Gewinnt Überblick 1.0 (Martin Kapfhammer)
Das Model-View-ViewModel-Pattern
Reiner Ganser Solution Architect 1stQuad Solutions GmbH Presentation Subtitle.
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 2 Commands (1) s.a.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 Dependency Properties s.a.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 7 Folie 2 Styles (1) s.a.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 11 Folie 2 Model-View-ViewModel s.a.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ADO.NET (1) Klassen für Zugriffe.
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Migration von VFP Anwendungen nach Silverlight Uwe Habermann Venelina Jordanova
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 7 Folie 2 ASP.NET Datenbindung
Goldpartner: Veranstalter: Der Werkzeugkasten für Entwickler Ein UI-Framework in AngularJS Timo Korinth.
© Zühlke 2013 Romano Roth Workshop 6 (ws6C) native Entwicklung für mobile Geräte Lektion 5-6: Mega CRM 25. Februar 2013 Folie 1 von 10.
Microsoft Student Partner
Microsoft Silverlight Autor: Christian Pirker. Inhalt Einführung Silverlight Einführung XAML Silverlight 1.0 und 1.1 Silverlight 2.0 Silverlight 3.0 Ausblick.
Einführung in PowerPoint Zum Seminar „Video und Multimedia im Unterricht DaF“ (Theorie und Praxis der Lehr- und Lernmittel) bei Prof. Dr. E. Tschirner.
Vererbung. Klassen - Vererbung  Eine Klasse kann von einer Basisklasse abgeleitet werden  Die abgeleitete Klasse erbt die Eigenschaften und Methoden.
Mehrsprachigkeit in Forms 6i Jörg Windau / Robert Kaminski.
Cubido business solutions gmbh Haidfeldstrasse 33 A-4060 Leonding di(fh) Wolfgang Straßer ° Rundumblick.
Patrick Richterich Lattwein GmbH Web Services Softwareentwicklung mit SOAP.
Operator Overloading, Mehrfachvererbung, Safe Pointer, Observer.
COURSE in Köln – Copyright, 2009 Lattwein GmbH Michael Prinz Lattwein GmbH Query Reports nach „Maß“
XML-basierte Beschreibungssprachen für grafische Benutzerschnittstellen Seminarvortrag im Studiengang „Scientific Programming“ von Steffen Richter.
Energy as a driver in open-ended evolution Von Tim Hoverd & Susan Stepney Präsentation von Sebastian Schrage.
Willkommen bei PowerPoint
Allgemeine Befehle für die allgemeine Liste
Create Table, Rechte und Rollen
Virtualisierung von Web-Applikationen mit Docker
Data/Code driven UI mit WPF Teil 1
Lesen Sie alles darüber Microsoft SharePoint-News
Lesen Sie alles zu Microsoft SharePoint-News
ERFA CAD – Inventor – Berufsschule Zofingen
Raphael Fischer Informatik II - Übung 06 Raphael Fischer
Da·ten·bank /Dátenbank/ Substantiv, feminin [die]
1. Die rekursive Datenstruktur Liste 1
Datenstrukturen und Softwareentwicklung
Von Diana Braun und Daria Bures
Wissenschaftliches Projekt
Von Wietlisbach, Lenzin und Winter
Informatik Softwareentwicklung – 4.3 Entwurfsmuster
Lernmodul Einführung Nutzen Sie diese Powerpoint-Präsentation beim Selbstlernen oder in Veranstaltungen zur Einführung in das jeweilige Thema. Nutzungsbedingungen:
 Präsentation transkript:

DatenBinding mit WPF Holger Mester

Agenda  Einführung  Grundlagen des DataBindings  Quelle/Ziel  Interaktionsmodus  Einfaches Binden  Behandeln von Änderungen  Konvertierung von Daten  Validierung von Daten  Binden von Collections  Collection Views  Master-Detail User Interfaces  Data Templates  Debuggen von DataBindings  Weitere Informationen

 WPF sind.NET-Framework-Klassen, die es erlauben ansprechende und funktionale Oberflächen für Windows-basierende Systeme zu erstellen  Oberflächen werden mit DirectX gerendert  Trennung von Oberfläche und Code  XAML (Markup) für die Oberflächen (Designer)  C# oder VB.NET (Managed Code) für die Logik (Entwickler)  Kann als Windows- oder Web-UI entwickelt werden  Austausch von:  Sitzungsdaten  Eigenschaften  Ressourcen  2D-, 3D- und Animationsdarstellung Designer Entwickler Die Windows Presentation Foundation (WPF)

 Ansatz, um in einer Applikation Daten darzustellen und mit ihnen zu interagieren  Daten können aus verschiedenen Datenquellen an ein Steuerelement gebunden werden  Datenbank (ADO.NET)  XML-Datei  CLR-Objekte  UI-Elemente Was ist DataBinding

Was ist DataBinding  WPF-DataBindung benötigt:  Zielobjekt mit Zieleigenschaften (Target object)  Quellobjekt (Source object)  Bindingobjekt  Zielobjekt muss DataBinding unterstützen  Quellobjekt ist eine beliebige Datenquelle  Bindingobjekt legt fest, wie Ziel und Quelle interagieren Zielobjekt Bindingobjekt Quellobjekt

Zielobjekt Bindingobjekt Quellobjekt Zielobjekt Bindingobjekt Quellobjekt Zielobjekt Bindingobjekt Quellobjekt Interaktionmodus zwischen Quelle und Ziel  One Way  Ändert sich das Quellobjekt, wird automatisch das Zielobjekt aktualisiert  Änderungen an der Quelle werden nicht zum Ziel durchgereicht  Two Way  Wird Quelle oder Ziel geändert, ändert sich der Gegenpart  One Way to Source  Die Quelle wird automatisch aktualisiert, wenn sich Daten im Ziel geändert werden  One Time  Ziel wird nur beim ersten Einlesen der Quelle geändert Zielobjekt Bindingobjekt Quellobjekt

Binden an eine Source-Eigenschaft  Ein Objekt wird durch die Angabe einer Ressource als Source- Eigenschaft (Property) an ein Control gebunden  Beispiele:  Ein Objekt wird in den Ressourcen des Elternobjektes (siehe VisualTree) definiert  Wird das Objekt im DataContext des Elternobjektes gebunden, kann im Zielobjekt ein leerer Binding-Syntax verwendet werden

Binden an ein anderes Steuerelement  Die ElementName-Eigenschaft eines Steuerelements kann an ein anderes gebunden werden  Durch das Binden wird der DataContext vom Eltern-Objekt vererbt  Mit dem ElementName wird die Quelle einer Datenbindung geändert, der geerbte DataContext wird überschrieben  Beispiel  Die Background-Eigenschaft eines Canvas wird durch Benutzung von ElementName an die SelectedItem-Eigenschaft einer ComboBox gebunden

Die Change-Notification-Eigenschaft  Die Change-Notification-Eigenschaft sorgt dafür, dass sich Änderungen auf der UI zum Objekt durchschlagen  Arten der Change Notification  PropertyChanged: Quell-Daten werden geändert, wenn sich Daten im Ziel-Objekt ändern, z. B. Check- oder Radiobuttons  LostFocus: Quell-Daten werden aktualisiert, wenn das Ziel-Objekt seinen Fokus verliert, z. B. Eingabe-Controls wie Textboxen  Explicit: Quell-Daten werden nur dann aktualisiert, wenn das Ziel eine Aktualisierung explizit zulässt, z. B. nach der Eingabevalidierung  Kann nur mit den Interaktionsmodus TwoWay und OneWayToSource verwendet werden

Datenkonvertierung  Datentypen von Quelle und Ziel müssen kompatibel sein  Weichen die Datentypen ab, versucht die WPF diese automatisch zu konvertieren  Beispiel: Die Farbe im Beispielobjekt ist ein String > die Foreground- Eigenschaft eines Controls erwartet ein Brush-Typ  Schlägt die Konvertierung fehl, wird ein Fehler ausgegeben

Eigener Datenkonvertierer  Sind Konvertierungen seitens WPF nicht möglich, wird ein eigener Konverter implementiert  Ein eigener Konverter implementiert IValueConverter  Beinhaltet die Methoden Convert() und ConvertBack()  Der Konverter muss der Applikation bekannt gemacht werden  Erzeugen eines Ressourcen-Wörterbuchs  Verknüpfen des Wörterbuchs mit der Applikation in der App.xaml  Aufruf des Konverters beim Zielobjekt

 Daten werden vor dem Senden an die Quelle auf Richtigkeit geprüft  Im Binding-Objekt werden die Prüfungsrichtlinien festgelegt (Validation rules)  Sendet der Benutzer seine Daten, werden diese zuerst geprüft  Schlägt die Prüfung fehl, wird eine Meldung an das Ziel geschickt  War die Prüfung erfolgreich, werden die Daten zur Quelle geschickt  Ist ein Konverter vorhanden, werden die Daten vorher gewandelt Validierung von Daten

 Collections beinhalten eine Gruppe von Daten, die in entsprechenden Steuerelementen dargestellt werden  Collections, die gebunden werden sollen, müssen das IEnumerable- Interface implementieren  Änderungen (sowohl an der Quelle als auch am Ziel) werden durchgereicht  Für Änderungen muss das INotifyCollectionChanged-Interface implementiert werden  Collection mit INotifyCollectionChagend-Interface sind obserable  Änderungen werden unverzüglich durchgereicht Binden von Collections

Verwenden von Collection Views  Collection Views erlauben  Sortieren  Filtern  Gruppieren der Daten einer Collection  Collection Views werden wie Collections gebunden  Mehrere Collection Views können zu einer zusammengefasst werden  Daten können ohne erneute Abfrage der Quelle reorganisiert werden

Master-Details User Interfaces  Bestehen aus einem Steuerelement-Paar  Master Control  Detail Control  Master:Detail bilden eine 1:n Beziehung  Master-Detail UI wird durch Binden mehrerer Steuerelemente an die gleiche Datenquelle erzeugt

Verwenden von Data Templates  Data Templates erlauben die Definition der Anzeige von Daten in Abhängigkeit des Kontextes  Beispiel: Positive Zahlungseingänge werden schwarz, negative rot dargestellt  Data Templates werden als Ressource im Parent Element des Gültigkeitsbereichs definiert  Sie werden durch Trigger ausgelöst

Debugging von DataBindings  DataBindings werfen keine Exception  Lediglich Fehleranzeige im Ausgabefenster des Visual Studio  Seit WPF 3.5 kann die Klasse PresentationTraceSource gesetzt werden  CLR-Namespace auf System.Diagnostics setzen  Tracelevel beim Binding-Object setzen  Umfangreichste Anzeige im Ausgabefenster mit High

 Literatur .NET 3.0 – WCF, WPF und WF, Ein Überblick.NET 3.0 – WCF, WPF und WF, Ein Überblick  Zielgruppe: Einsteiger  Preis: 7,95 €, Wertung:  Windows Presentation Foundation – Das umfassende Handbuch Windows Presentation Foundation – Das umfassende Handbuch  Zielgruppe: Fortgeschrittene  Preis: 49,90 €, Wertung:  WPF und XAML-ProgrammierhandbuchWPF und XAML-Programmierhandbuch  Zielgruppe: Experten  Preis: 49,90 €, Wertung: Weitere Informationen

Weitere Informationen * Wertung bei Amazon.de  Literatur  Windows Presentation Foundation Windows Presentation Foundation  Zielgruppe: Einsteiger  Preis: 9,95 €, Wertung: *  User-Interface-Design mit Microsoft Expression Blend 2 User-Interface-Design mit Microsoft Expression Blend 2  Zielgruppe: Fortgeschrittene (Designer)  Preis: 39,90 €, Wertung: *  Windows Presentation Foundation (.NET WPF) Windows Presentation Foundation (.NET WPF)  Zielgruppe: Einsteiger  Preis: 44,90 €, Wertung: *

 Internet-Ressourcen  WPF Data Binding Tutorial auf core.net WPF Data Binding Tutorial auf core.net  WPF intim auf IT-Republic.de WPF intim auf IT-Republic.de  WPF-Blogger WPF-Blogger  Vorlagen für ungewöhnliche Steuerelemente auf MSDN Vorlagen für ungewöhnliche Steuerelemente auf MSDN  How Do I-Videos zur WPF How Do I-Videos zur WPF  Windows Presentation Foundation FAQ auf MSDN Windows Presentation Foundation FAQ auf MSDN  Fluent Ribbon Control Suite auf Codeplex Fluent Ribbon Control Suite auf Codeplex Weitere Informationen

 Der Blick über den Tellerrand  Eclipse XML Windowing Toolkit  Android Weitere Informationen

 Neuerungen in WPF 3.5 SP1 Neuerungen in WPF 3.5 SP1  Performance  Animationen laufen schneller und flüssiger  Scrollen in Steuerelementen mit vielen Daten ohne Wartezeiten  Verbesserungen bei Darstellung von Grafiken  Datenverwaltung  Neue Eigenschaften in Klasse ItemsControl  AlternationCount: Berechnung der Anzahl alternierender Zahlen  AlternationIndex: Dependency Property, die pro Item einen Wert zwischen 0 und AlternationCount besitzt  IEditableCollectionView: lässt das Bearbeiten von Items in einem CollectionView-fähigen Steuerelement zu  Visual Studio  Performance-Verbesserungen  Verbesserte Verwendung von Controls im Designer  Alphabetische Sortierung von Eigenschaften im Eigenschaften-Dialog Weitere Informationen

Glossar  Binding  Ist eine Prozess oder eine Methode, ein Steuerelement so zu konfigurieren, dass es sich seine Daten aus einer Quelle holen und sie zurückschreiben kann.  Control (Steuerelement)  Ist ein Interaktionselement in einer grafischen Benutzeroberfläche (GUI), wie z. B. eine Schaltfläche (Button).  Dependency Properties  Sind durch klassische.NET-Eigenschaften (Properties) gekapselt. Sie stellen einen Schlüssel zum eigentlichen Wert dar.  DirectX  Ist eine API von Microsoft zur Darstellung von hochauflösenden Grafiken, Videos, 3D-Animationen und Sourround Sound

Glossar  Dispatcher  WPF-Applikation starten mit zwei Threads: einen zum Rendern und der andere zum Verwalten der GUI. Der GUI-Thread „parkt“ die Workitems in einem Objekt, das Dispatche genannt wird.  Element tree  WPF-Elemente stehe in einer Baum (Tree)-Relation zu einander. Man unterscheidet zwischen Logical- und Visual-Tree.  Event Handler  Ein Eventhandler ist eine Methode, die an einen speziellen Event geknüpft ist.  Event  Ein Event ist eine Aktion, wie z. B. das Klicken der Maustaste.  Extensible Markup Language (XAML)  Ist eine Markup-Sprache zur deklarativen Applikationsentwicklung

Glossar  Observable Collections  Eine Observable Collection beinhaltet eine Collection und ein INotifyCollectionChanged-Interface.  Template Binding  Verlinkt den Wert einer Eigenschaft eines Steuerelements mit dem in einem Template festgelegten Wert. Damit kann das Aussehen und Verhalten (Behavior) eines Steuerelements zentral festgelegt und gesteuert werden