Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Windows Presentation Foundation Data Binding. Co je to Data Binding? Proces propojení UI s aplikační logikou Jednoduchá synchronizace dat s visuální reprezentací.

Podobné prezentace


Prezentace na téma: "Windows Presentation Foundation Data Binding. Co je to Data Binding? Proces propojení UI s aplikační logikou Jednoduchá synchronizace dat s visuální reprezentací."— Transkript prezentace:

1 Windows Presentation Foundation Data Binding

2 Co je to Data Binding? Proces propojení UI s aplikační logikou Jednoduchá synchronizace dat s visuální reprezentací Reflektuje na změny v UI i v datovém zdroji WPF propojuje tzv. Dependency Properties s řadou datových zdrojů – CLR objekty a XML dokumenty Dependency Property – vlastnost UI elementu s podporou value expressions, property invalidation, implicitními hodnotami, dědičností, databinding a stylování

3 Data binding - přehled Cíl (Binding Target) Libovolná vlastnost WPF elementu Zdroj (Binding Source) CLR objekt WPF Element ADO.NET (prostřednictvím Dataset) XMLKolekceModely One Time, One Way, Two Way, One Way To Source Dynamika Master-Detail scénáře Value Converter Ovládací prvek Objekt Property Data Binding Dependency Property Synchronizace Konverze Cíl Zdroj

4 Směr toku dat OneWay Změna ve zdroji dat je automaticky propagována do UI Typicky pro Read-only vlastnosti UI elementů TwoWay Změny ve zdroji dat i UI jsou navzájem synchronizovány Např. Editbox, CheckBox atd. OneWayToSource Propagovány jsou pouze změny v UI zpět do datového zdroje OneTime Zdroj inicializuje cíl pouze 1x Typicky pro statický obsah nebo zobrazení aktuálního stavu Důležité: datové zdroje pro OneWay a TwoWay scénáře musí podporovat „upozorňovací mechanismus“ Implementovat rozhraní INotifyPropertyChanged (u kolekcí také INotifyCollectionChanged)

5 Data binding v XAML

7 Sdílení společných zdrojů Value= {Binding Path=PoziceX, Source={StaticResource mojeData}} Canvas.Left= {Binding Path=PoziceX, Source={StaticResource mojeData}} DataContext= {Binding Source={StaticResource mojeData}} Value= {Binding Path=PoziceX} Canvas.Left= {Binding Path=PoziceX} Image HorizontalSlider StackPanel

8 Nastavení zdroje dat Deklarativně v XAML Deklarativně v XAML Explicitní binding Explicitní binding V kódu aplikace V kódu aplikace Kontakt kt = new Kontakt("Dalibor“, ); grid.DataContext = kt; Implicitní binding Implicitní binding

9 Video ukázka Jednoduchý data binding, sdílení datového zdroje

10 Objektový datový zdroj ObjectDataProvider umožňuje provést instanci libovolného typu v XAML kódu a vytvořit z něj datový zdroj Možnost spuštění konstruktoru ve vlastním threadu

11 XML datový zdroj WPF má přímou podporu pro XML datový zdroj Uložen externě v souboru Nebo jako objekt XML dokumentu v paměti XPath výraz pro výběr hodnoty roomster.png... auta.xml

12 Video ukázka Objektový datový zdroj, XML datový zdroj

13 Kolekce jako zdroj Zdroj může být představován i kolekcí objektů Zobrazení ve formě iterace po jednotlivých položkách kolekce nebo připojení k objektu ItemsControl (ListBox, ListView, TreeView) ItemControl podporuje pouze OneWay binding Realizace kolekce Měla by implementovat INotifyCollectionChanged Nebo použít třídu ObservableCollection Nebo použít třídu ObservableCollection Každý objekt v kolekci by měl implementovat INotifyPropertyChanged

14 Práce se členy kolekce Přístup k jednotlivým položkám pomocí CollectionView „ Sedí nad daty“ a poskytuje služby Iterace (MoveCurrentToNext, MoveCurrentToPrevious, …) Třídění podle více kritérií Filtrování Atribut IsSynchnizedWithCurrentItem zajistí zobrazení vybrané položky (např. ListBoxu) v detailním pohledu na data

15 Datová šablona Datová šablona prezentuje informace datového zdroje konkrétního typu Často použita pro položky kolekce class Car { string Image {get;set;} string Model {get;set;} }

16 Výběr Data Template Podle jména (resource dictionary key) ContentTemplate/ItemTemplate= {StaticResource maSablona} Podle typu pro XML pro XML

17 Video ukázka Kolekce jako zdroj dat, šablona pro položku kolekce

18 Detail Master-Detail vazba Jako master použijeme libovolný ItemsControl (např. ListBox) Musí mít nastaven IsSynchronizedWithCurrentItem="True" Umožňuje i víceúrovňový Master-detail scénář Umožňuje i víceúrovňový Master-detail scénář Master Oblast.Nazev.Vino Oblast.Nazev.Vino Vino.Odruda.Rocnik.Hodnoceni Vino.Odruda.Rocnik.Hodnoceni class Oblast { string Nazev {get;set;} string Vino {get;set;} } class Vino { string Odruda {get;set;} string Rocnik {get;set;} string Hodnoceni {get;set;} }

19 Video ukázka Více úrovňová master-detail aplikace

20 Shrnutí Shrnutí WPF rozumí vašim datům Používejte své oblíbené datové modely: XML, objekty, SQL, WS … Připojte je k ovládacím prvkům

21 Odkazy Odkazy Prezentace David Krčmář, Acad. Developer Evangelist Video David Krčmář MSDN Windows Vista Developer Center Microsoft.NET Framework Download platformy a ovládacích prvků ult.aspx ult.aspx ult.aspx Doporučení pro Windows Vista UX Další odkazy

22 © 2009 Microsoft Corporation.


Stáhnout ppt "Windows Presentation Foundation Data Binding. Co je to Data Binding? Proces propojení UI s aplikační logikou Jednoduchá synchronizace dat s visuální reprezentací."

Podobné prezentace


Reklamy Google