Datové vazby (1) Datová vazba (data binding) je proces, který ustanovuje spojení mezi uživatelským rozhra-ním aplikace a její aplikační logikou Poskytuje.

Slides:



Advertisements
Podobné prezentace
Windows Presentation Foundation Data Binding
Advertisements

Inf Používání a tvorba databází. Výukový materiál Číslo projektu: CZ.1.07/1.5.00/ Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT.
Pořízení dat Databázové funkce Řazení Filtrování Souhrny Kontingenční tabulky Kontingenční grafy.
Název školy ZÁKLADNÍ ŠKOLA, JIČÍN, HUSOVA 170 Číslo projektu CZ.1.07/1.4.00/ Číslo a název klíčové aktivity 3.2 Inovace a zkvalitnění výuky prostřednictvím.
Delphi – práce se základními komponentami (1. hodina) OB21-OP-EL-KON-DOL-M-4-008A Orbis pictus 21. století.
Operační program Vzdělávání pro konkurenceschopnost Název projektu: Inovace magisterského studijního programu Fakulty ekonomiky a managementu Registrační.
Inf Tabulkový procesor - funkce. Výukový materiál Číslo projektu: CZ.1.07/1.5.00/ Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT.
Význam diferenciálních rovnic převzato od Doc. Rapanta.
Programování v jazyce C++ Dědičnost a polymorfismus.
Plánovací část projektu Cíl projektu - vychází z řešení z prognostické části, - odpovídá na otázku, čeho má být dosaženo? - představuje slovní popis účelu.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiáluVY_32_INOVACE_30-03 Název školy Střední průmyslová škola stavební, České Budějovice, Resslova 2 AutorRNDr.
Základní škola a mateřská škola Lázně Kynžvart Autor: Mgr. Petra Šandová Název: VY_32_INOVACE_5B_INF3_16_ Téma: pro 4.,5.ročník ZŠ, vytvořeno:
Funkce Lineární funkce a její vlastnosti 2. Funkce − definice Funkce je předpis, který každému číslu z definičního oboru, který je podmnožinou množiny.
STYL Ke stylu se užívá:Typické slovní prostředky: Věty: 1. HOVOROVÝ v běžných rozhovorech každodenního života slova a obraty hovorové, výrazy z obecné.
= Sada diapozitivů (snímků), které se promítají na promítacím přístroji (zpětném projektoru). Jednotlivé snímky se zobrazují v určitém pořadí a umožňují.
Vyhláška č. 326/2006 Sb., o atestačním řízení pro elektronické nástroje Mgr. Martin Plíšek.
Autentizace předmětem
PŘIHLÁŠENÍ K ELEKTRONICKÉ EVIDENCI TRŽEB
Věcné autority v roce 2016
Nadpis prezentace Zdeněk Tišl
Základy automatického řízení 1
HTML a CSS Rostislav Miarka.
Výukový materiál zpracován v rámci projektu
ZÁKLADNÍ ŠKOLA, JIČÍN, HUSOVA 170 Číslo projektu
Organizace výroby Organizace a řízení výroby
Analýza kvality života aneb proč, jak a pro koho …
Software počítače – opakování
COM – Práce s objektovým modelem jiné aplikace
Projekt 1 Databázové systémy I
Matematika 3 – Statistika Kapitola 4: Diskrétní náhodná veličina
Lineární funkce - příklady
Způsoby zápisu algoritmů
Vytápění Tepelné ztráty
Číslo projektu CZ.1.07/1.5.00/ Číslo materiálu
Ovládací prvky (1) Ovládací prvky jsou ve WPF reprezentovány třídami (podobně jako ve Windows Forms) Lze je rozdělit do následujících skupin: tlačítka:
Programování v jazyce C++
Střednědobý plán rozvoje sociálních služeb v Olomouckém kraji pro roky
NÁZEV ŠKOLY: ZŠ J. E. Purkyně Libochovice
Tisk z MS Windows (1) Pro účely tisku na tiskárnách Windows Forms poskytují třídu PrintDocument Třída PrintDocument je definována ve jmenném prostoru:
Význam utkání v sportovních hrách
TÉMA: Počítačové systémy
Databáze MS ACCESS 2010.
Číslo projektu Číslo materiálu název školy Autor Tématický celek
Abstract Factory.
Číslicová technika.
Novinky v Záznamníku učitele
Pseudosekce: P-T fázový diagram v jednoduchém systému Al2SiO5 s demonstrací postupu při tvorbě pseudosekce.
Informatika pro ekonomy přednáška 8
Logické zdroje (1) Logické zdroje (resources) dovolují definovat hodnoty, které mohou být následně v jazyku XAML nebo v kódu na pozadí využity na růz-ných.
Přídavná zařízení.
GDPR: ochrana osobních údajů
Seminář SoMoPro III. - Právní část Mgr. Klára Benišová/1258
Uživatelská příručka DuoTrainin
Dialogová okna (1) Dialogová okna mohou být ve WPF (podobně jako ve Windows Forms) implementována jako: modální: zobrazení se provede voláním metody ShowDialog.
Typy Oken, Zobrazení a Konfigurace
Materiál byl vytvořen v rámci projektu
Zapisovatelé : Informace o způsobu zápisu
Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Název školy: Autor: Název: Číslo projektu: Název projektu:
Nádherné prezentace navrhnete a předvedete snadno a s jistotou.
Dotazníkové šetření II – koncepce a nastavení
Analýza informačního systému
Klíčové aktivity projektu
Informatika pro ekonomy přednáška 8
Vázání dat Data Binding
ZLEPŠENÍ PODMÍNEK PRO VZDĚLÁVÁNÍ NA EOA
Lineární funkce a její vlastnosti
Grafy kvadratických funkcí
Hromadné dokumenty opakující se pro kolekci osob
Class Diagrams.
Transkript prezentace:

Datové vazby (1) Datová vazba (data binding) je proces, který ustanovuje spojení mezi uživatelským rozhra-ním aplikace a její aplikační logikou Poskytuje aplikacím možnost prezentovat data a pracovat s nimi Dovoluje, aby elementy uživatelského rozhra-ní byly navázány na data z rozličných dato-vých zdrojů V okamžiku, kdy dojde ke změně dat v dato-vém zdroji, jsou tyto změny automaticky re-flektovány na úrovni uživatelského rozhraní 25/05/2018

Datové vazby (2) Datové vazby mohou také zabezpečit, že změ-na na úrovni uživatelského rozhraní se promít-ne do navázaného datového zdroje Datová vazba vytváří most mezi cílem a zdro-jem vazby Cíl vazby (Binding target) Zdroj vazby (Binding source) Binding object DependencyObject Object Závislá vlastnost Vlastnost 25/05/2018

Datové vazby (3) Datová vazba se skládá ze čtyř komponent: cíl vazby (binding target): prvek uživatelského rozhraní, např. TextBox cílová vlastnost (target property): musí se jednat o závislou vlastnost v objektu cíl vazby např. vlastnost Text v objektu třídy TextBox zdroj vazby (binding source): uživatelem definovaný objekt, prvek uživatelského rozhraní, uzel v dokumentu XML apod. např. objekt třídy Osoba cesta k hodnotě ve zdroji vazby: vlastnost v objektu představujícím zdroj vazby např. Jmeno v objektu třídy Osoba 25/05/2018

Datové vazby (4) Vytvoření datové vazby se provádí pomocí objektu třídy Binding (zapisováno jako markup rozšíření, tj. ve složených závorkách) Datové vazby umožňují tři směry toku dat Cíl vazby (Binding target) Zdroj vazby (Binding source) Binding object DependencyObject Object Závislá vlastnost OneWay Vlastnost TwoWay OneWayToSource 25/05/2018

Datové vazby (5) Zvolený směr určuje hodnota vlastnosti Mode: OneWay: změny vlastnosti zdroje implikují automatické změny v cílové vlastnosti změny cílové vlastnosti neovlivňují vlastnost zdroje TwoWay: změny vlastnosti zdroje provádí automatické změny v cílové vlastnosti a naopak změny cílové vlastnosti modifikují vlastnost zdroje OneWayToSource: opak vazby OneWay provádí změny vlastnosti zdroje na základě změn cílo-vé vlastnosti 25/05/2018

Datové vazby (6) Poznámka: datová vazba může být nastavena i v režimu OneTime: vlastnost zdroje inicializuje cílovou vlastnost, ale další změny vlastnosti zdroje už nemají na cílovou vlastnost vliv Aby bylo možné detekovat změny zdroje (při použití směru OneWay a TwoWay), je zapo-třebí zabezpečit mechanismus pro oznámení o změně hodnoty Toto lze realizovat implementováním rozhraní INotifyPropertyChanged, jež předepi-suje událost PropertyChanged 25/05/2018

Datové vazby (7) V případě použití směru vazby TwoWay nebo OneWayToSource jsou sledovány změny cílové vlastnosti, které poté modifikují zdroj vazby Událost, která spustí modifikaci zdroje, je dána vlastností UpdateSourceTrigger (třídy Binding): PropertyChanged: k modifikaci na úrovni zdroje dochází okamžitě kdyko-liv cílová vlastnost změní svou hodnotu LostFocus: modifikace zdroje se uskuteční v době, kdy cílový ovlá-dací prvek ztrácí vstupní zaměření (focus) 25/05/2018

Datové vazby (8) Explicit: modifikace se provede explicitně zavoláním metody UpdateSource Pro implementaci datové vazby je zapotřebí specifikovat tzv. zdroj datové vazby (binding source) Zdroj datové vazby může být nastaven pomocí vlastnosti: DataContext: definována jako závislá vlastnost na úrovni třídy FrameworkElement její hodnota je děděna elementy, které jsou popsány ve stromě elementů na nižších úrovních 25/05/2018

Datové vazby (9) Source: ElementName: RelativeSource: vhodné zejména v případě, kdy je zapotřebí navázat více vlastností na jeden zdroj Source: vlastnost definovaná ve třídě Binding umožňuje nastavení zdroje přímo v deklaraci vazby ElementName: vlastnost třídy Binding dovoluje provázání vlastností dvou elementů (ovláda-cích prvků) RelativeSource: používáno pro realizaci vazby specifikované v šabloně ovládacího prvku nebo ve stylu 25/05/2018

Datové vazby (10) Pro zadání cesty k hodnotě ve zdroji vazby se používá vlastnost Path (třídy Binding) V případě, že se provádí vazba celého objektu, je možné specifikaci pomocí Path vynechat Je-li je zapotřebí v průběhu datové vazby pro-vést modifikaci (konverzi) hodnoty poskytova-né zdrojem vazby, je možné definovat třídu (tzv. konvertor), která implementuje rozhraní IValueConverter 25/05/2018

Datové vazby (11) Rozhraní IValueConverter definuje sig-natury dvou abstraktních metod: Convert ConvertBack Definovaný konvertor se zadává pomocí nasta-vení hodnoty vlastnosti Converter třídy Binding Prostřednictvím datových vazeb lze pracovat také s kolekcemi (např. nastavení prvku typu ListBox, ListView, TreeView apod. tak, aby zobrazoval prvky kolekce) 25/05/2018

Datové vazby (12) Definice zdroje dat (kolekce) se provádí nasta-vením hodnoty vlastnosti ItemsSource třídy ItemsControl Mají-li se změny v kolekci automaticky proje-vit i v příslušném ovládacím prvku, je nezbyt-né, aby kolekce implementovala rozhraní INotifyCollectionChanged předepi-sující událost CollectionChanged Poznámka: WPF poskytuje (definuje) generickou kolekci ObservableCollection<T>, která zmíněné rozhraní implementuje 25/05/2018

Datové vazby (13) Po nastavení kolekce, jako zdroje dat, lze apli-kovat tzv. pohledy (views): třídy implementující ICollectionView umožňují např. řazení, filtrování, seskupování dat beze změny kolekce 25/05/2018

Šablony (1) Šablony (templates) popisují celkový vzhled (vizuální zobrazení) ovládacího prvku nebo kolekce dat Každý ovládací prvek má svoji implicitní šab-lonu, která popisuje jeho celkový vzhled WPF umožňuje vytvářet vlastní šablony, které vzhled ovládacího prvku změní (přizpůsobí) Šablona zpřístupňuje možnost definovat vzhled prvku na úrovni vnitřní kompozice: definujeme, z čeho je ovládací prvek sestaven a jak jsou jednotlivé jeho části vůči sobě rozloženy 25/05/2018

Šablony (2) Propojení mezi šablonou a aplikační logikou je realizováno pomocí datových vazeb WPF rozlišuje dva typy šablon: šablona ovládacího prvku (control template): popisuje vzhled na úrovni ovládacího prvku (např. Button, CheckBox apod.) datová šablona (data template): popisuje vzhled a strukturu kolekce dat poskytuje možnost formátovat a definovat prezentaci dat na úrovni libovolného prvku uživatelského rozhraní nejčastěji používána u dat v prvcích typu (ListBox, ComboBox, ListView apod.) 25/05/2018

Šablony ovládacích prvků (1) Šablona ovládacího prvku je dána jeho vlast-ností Template typu ControlTemplate Obvykle definovány pomocí logický zdrojů Využitím elementu <ControlTemplate> je možné popsat instanci třídy, která se násled-ně přiřadí do vlastnosti Template V elementu <ControlTemplate>: je nutné atributem TargetType specifikovat třídu, na kterou bude moci být šablona aplikována lze využít element <ContentPresenter> vyjadřující zobrazení obsahu ovládacího prvku 25/05/2018

Šablony ovládacích prvků (2) Navázání prvků šablony na vlastnosti třídy se provádí pomocí TemplateBinding: nutné použít v okamžiku, kdy prvek šablony je jiný než odpovídající vlastnost třídy Třída ControlTemplate mimo jiné nabízí vlastnost Triggers dovolující definovat spouště Poznámka: šablonu lze definovat i v rámci stylu pomocí elementu <Setter> a atributů Property a Value 25/05/2018

Datové šablony (1) Dovolují modifikovat způsob vizuálního zo-brazení datových objektů Datové šablony se definují pomocí elementu <DataTemplate> Specifikace typu datového objektu, k němuž se šablona vztahuje, se provádí prostřednictvím atributu DataType Vytvořená šablona se přiřazuje do vlastnosti ItemTemplate, která je definována ve třídě ItemsControl 25/05/2018

Datové šablony (2) Navázání prvků šablony na vlastnosti třídy specifikující datový zdroj se realizuje pomocí rozšíření Binding Poznámky: datový zdroj (kolekce) je nastaven prostřednictvím vlastnosti ItemsSource pomocí datových spouští lze docílit různého vzhle-du prezentovaných dat v závislosti na hodnotách jejich vlastností 25/05/2018

Ověřování platnosti (1) Pro ověřování platnosti (validaci) údajů (hod-not) zadaných uživatelem poskytuje WPF: abstraktní třídu ValidationRule specifikuje tzv. validační pravidlo statickou třídu Validation třídu ValidationResult Na úrovni potomka třídy ValidationRule je zapotřebí předefinovat metodu Validate tak, aby vracela validní, resp. nevalidní instan-ci třídy ValidationResult (v závislosti na tom, zda testovaná hodnota je, resp. není vyhovující stanoveným podmínkám) 25/05/2018

Ověřování platnosti (2) Odpovídající instance lze vrátit pomocí: ValidationResult.ValidResult: zpřístupnění vlastnosti ValidResult, která vrací validní instanci třídy ValidationResult ValidationResult(false, ”Popis chyby”): vrací nevalidní instanci třídy ValidationResult společně s textovým popisem vzniklé chyby Testovaná hodnota se metodě Validate pře-dává pomocí parametru value typu object Hodnota parametru value je dána nastave-ním datové vazby, v níž cílová vlastnost repre-zentuje hodnotu, kterou je zapotřebí otestovat 25/05/2018

Ověřování platnosti (3) Propojení s třídou obsahující definici metody Validate (potomek ValidationRule) se realizuje prostřednictvím nastavení vlastno-sti ValidationRules třídy Binding Poznámky: vlastnost ValidationRules je definována jako kolekce validačních pravidel třída ValidationRule poskytuje také vlastnost ValidatesOnTargetUpdated dovolující provést validační pravidlo v okamžiku, kdy je cíl vazby aktualizován 25/05/2018

Ověřování platnosti (4) Za účelem poskytnutí zpětné vazby uživateli (při zadání chybné hodnoty) je možné využít statickou třídu Validation: definuje přidružené vlastnosti: ErrorTemplate: dovoluje nastavit šablonu ovládacího prvku tak, aby indikoval zadání chybné hodnoty pomocí tzv. vrstvy adorner (součást vi--zuálního stromu) HasError: vrací hodnotu, zda při validaci byla zjištěna chyba Errors: kolekce zjištěných chyb v průběhu validace každá chyba je v kolekci reprezentována jako instance třídy ValidationError a pomocí vlastnosti ErrorContent o ní lze zjistit bližší informace 25/05/2018

Ověřování platnosti (5) Při definici šablony pro indikaci chybně zada-né hodnoty lze využít třídu AdornedEle-mentPlaceholder: může být použita pouze na úrovni definice šablony rezervuje místo pro zobrazení ovládacího prvku (potomka třídy UIElement), který může být zpřístupněn vlastností AdornedElement 25/05/2018