Fejlesztési univerzális alkalmazás ablakok 10
A második rész a cikk szentelt adatkötéseket és annak alkalmazása programozás Windows-10 univerzális alkalmazásokat.
2.5. Az irány kötési
Fussunk újra létrehoztuk Bindings1 alkalmazást, de most be egy értéket a beviteli mezőbe inch. Ahogy gyorsan továbbítja a hangsúly a beviteli mező cm (például megnyomásával
Univerzális alkalmazás fejlesztők ebben az esetben azt mondják, hogy a kétirányú kötődés jött létre.
A 2.4 szóltunk a Mode tulajdonsága a Binding osztály. Ez csak beállítja az irányt, ahol a munka lesz kötelező érvényű. És amelynek értéke jelzi az egyik felsorolt elemek BindingMode:
- Kétutas - kétirányú kötődés már vizsgáltuk.
Miután az értéket a vevő megváltozik, akkor azonnal át a kapcsolódó forrás tulajdonság. A kivétel egy Text tulajdonság. transzfer értéke csak akkor kerül végrehajtásra, miután a szabályozó elem elveszíti a fókuszt (mint láttuk korábban); - OneWay - egy egyirányú kötődést. A kizárólag az „előre” irányba - a forrástól a kagylót. Ez kevesebb erőforrást igényel, mint a kétirányú, hiszen nincs szükség figyelemmel kíséri a változás az ingatlan értékét és a vevő, illetve végezze el a forrást;
- Egyszer használatos - egylépcsős kötődését. azzal jellemezve, egyirányú, így az átvételi érték elég egyszer, közvetlenül az alkalmazás indításakor. Amikor a program működése nem igényel a rendszer erőforrásait, amint az átvételi érték kötődést hagyni.
Adja meg a kötési irány tudjuk, mint tudjuk, párbeszédablak, adatkötést létrehozni. Mi alapján állapítsák meg ugyanolyan módon, mint ahogy korábban: négyzet gombra kattintva elhelyezve a jogot a szükséges ellenőrzés a Properties panelen. és válassza a megjelenő menüben létrehozása adat kötelező érvényű.
Az ablakban razvernom csoport vezérli több paramétert (ábra. 7). Lesz elérhető legördülő kötési iránya (mód). amelyben a kívánt tételt.

Ábra. 7. A párbeszédablak Create adatok kötődés (csoport telepített több paraméter)
Kísérletképpen tudjuk mutatni a kötési irány OneWay (azaz, hogy hozzon létre egy egyirányú kötelező). Ebben az esetben, ha belépnek egy új értéket a beviteli mezőbe inch (azaz a vevő), ez az érték nem kerülnek át a forrás - centiméter területen. Még elvesztése után az első mező a bemeneti hangsúly.
A kötődés az irányt egyszer használatos (egylépéses), ebben az esetben általában a haszontalan. Miután az alkalmazás elindul, az értéke a beviteli mező centiméter - üres sor - kerül át a beviteli mezőbe inch. ami után a kötődés nem fog működni. És hogy nem fogjuk bevezetni az első mezőben, a második üres marad.
2.6. Ellátó adók értékek
Úgy tűnik, hogy írtunk egy alkalmazás átalakítására értékek hüvelyk centiméter, és fordítva. Akkor miért megadott érték az általunk átadott, ahogy van, átalakítás nélkül? Nézzük erősít ez.
2.6.1. Értékteremtés átalakítók
UWP adatok kötelező lehetővé teszi, hogy konvertálni értékeket végzett egyik formátumból a másikba - ez az egyik a speciális funkciók, amelyeket korábban említettük, ebben a cikkben. Erre a célra az úgynevezett értékeit a feldolgozók.
Az átalakító értéknek kell lennie egy osztályt, amely megvalósítja az interfészt IValueConverter. mely bejelentett névtér Windows.UI.Xaml.Data. Ez az interfész támogatja a két módszer:
- Átalakítás - végzi el az átalakítást, ha át egy „előre” irányba - a forrástól a vevő;
- ConvertBack - elvégzi az átalakítást az áthelyezés során a „fordított” irányban - a forrástól a vevő.
Mindkét módszer veszi ugyanazt az érvek:
- a tényleges érték az átváltandó - típusú System.Object;
- típusmegjelölést, amelyben át kell alakítani, - egy-egy megfelelő, előre meghatározott System.Type átadóelem;
- egy további érv lehet meghatározott paramétereinek kötődését - típusú System.Object (valójában ez az érv lehet bármilyen típusú). Ezt fel lehet használni, például az üzemmód kiválasztásához átalakítás a rendelkezésre álló készlet;
- kijelölés nyelv és kultúra, figyelembe véve, amelyek az átalakítás kell elvégezni, - a húr.
Új Visual Studio projekt elem, például egy fájl programot C # -code, három módon. Először is, meg lehet találni egy hierarchikus lista, amely a Solution Explorer ablakban. „Fiók”, ami maga a projekt (ebben az esetben a „fióktelep” Bindings1 (Universal Windows)), kattintson jobb egérgombbal, válasszuk az előugró képernyőn összefüggésben menüponttal. és az almenüben után megjelenő - bekezdés Új elem. Másodszor, akkor kattintson az Új projekt menüpontot. Harmadszor, akkor nyomja meg a billentyűkombináció
Miután minden ilyen intézkedések a képernyőn megjelenik az Új elem hozzáadása párbeszédablak (ábra. 8). A lista az ablak közepén válassza ki a kívánt elem típusát ki (a mi esetünkben - para. Osztályú, mivel fogunk hozzá a kódfájl ahol mi írjuk a hirdetéseket az új osztály), adja meg a fájl nevét kell létrehozni a Név mezőben, és kattintson Hozzá.

Ábra. 8. A párbeszédpanel Új elem hozzáadása
Ha hozzá kíván adni a projekt az kódfájl teheti könnyebbé. Kétféle módon. Először is, az egér jobb gombjával az „ágai” hierarchikus lista ablaktábla Solution Explorer. amely bemutatja a projekt, és válassza ki az elemet Class Add almenüt. Másodszor, válassza az Add menü osztály projekt. Ebben az esetben, a listát a nyitott ablak Új tétel az Besorolás kiválasztva.
Class CIConverter teljes kód az alábbiakban mutatjuk be (Expression importáló névterek, amelyek a legelején a kód, és beilleszthető a legtöbb Visual Studio, elhagytuk a rövidség kedvéért).
Mint egy univerzális alkalmazás, létrehozta a tanulmány cikk, „fejlesztése a Windows 10. Az leguniverzálisabb alkalmazás az első olyan alkalmazás”, amikor is a felsorolt értékek a szövegmezőbe (mint már tudjuk, ez tárolja a Text tulajdonság, mint egy húr), a szám, amit használt statikus módszer Elemzési osztály System.Double. Van azonban egy komoly probléma, amikor megpróbálta átalakítani a karakterláncot úgy, hogy tárolja semmi más, mint a lebegőpontos számok, ez a módszer kivételt dob, és leállítja a program végrehajtásához. Meg kell, hogy megszüntesse ezt a kellemetlen pillanatot.
Ezért mi a statikus módszerrel TryParse. Tart két érv, melyek közül az első - a tényleges konvertált szöveg, a második pedig kimenet, és tárolja a száma - átalakítás eredményeképpen. Ha az átalakítás sikeres, az eljárás visszatérési értéke true. egyébként - hamis.
Ezen az alapon, hogy könnyű megérteni, hogy a két módszer csak írásos CIConverter osztály kapcsolatot. Kijelentjük változó fl típusú kettős (C # terminológia így kijelölt System.Double osztály) és rendeljen hozzá egy 0. Most megpróbáljuk átalakítani szerepel a mezőben lévő szöveget (hozatalát követően, hogy egy string típusú, mert mint tudjuk felidézni, az inverter módszerrel „belép” érték System.Object típus), és ha a konverzió sikeres volt, elvégezni a szükséges számításokat, és visszaadja az eredményt.
Megjegyezzük, hogy a visszaadott eredmény, akkor közvetlenül átalakítani a string hívja a toString eljárás. Ez biztosítja, hogy a kapott számot a képernyőn megjelenő nyelv- rendszer beállításait (például a Windows orosz lebegőpontos számok jelennek meg a vessző a tizedes elválasztó).
Most mentse el a projektet, és váltson át a fájlt a felület kezdő oldal XAML-kódot. Fogunk hozzá most írt nekünk átalakító oldal erőforrások és pont ez a kötődés beállításokat.
Sajnos, a Visual Studio nem nyújt semmilyen eszközt dolgozni erőforrás oldalak és alkalmazások, így meg kell adnia a szükséges kódot a XAML-leírás oldalak kézi felület. Ezt a kódot az alábbi ábrán látható; el kell helyezni közvetlenül a nyitó
Ez a kód kerül egy erőforrás szótárban oldalak osztályunk CIConverter. található a XAML névtér néven helyi - névtér a mi alkalmazások -, és teszi elérhetővé a „CI” gombot.
Továbbá javasoljuk, hogy építeni a megoldást Visual Studio képes volt, hogy „megtalálják” a meghajtót, és hozza azt a párbeszédablakban adatkötést létrehozni. Az összeállítás lehet tenni kiválasztásával építsünk Solution Menu Építőanyag gomb vagy billentyűkombinációk
Ezután ebből párbeszédablak létrehozása adatkötést a kötések. Itt kell egy legördülő listából átalakító. ahol úgy döntünk, a kulcs, amelynek értelmében a konverter elérhető (ez a legfontosabb „CI”).
Amint döntünk a listán konverter átalakító doboz lesz elérhető ConverterParameter bemenet. Ebben az érték az opcionális argumentum tároljuk kell továbbítani és módszerek átalakítása ConvertBack osztály átalakító (harmadik érv figyelembe ezeket a módszereket, részletek a korábban ismertetett).
Végül mentse el a projektet, és az alkalmazás futtatásához futtatni. A beviteli mező centiméter be semmilyen számot, és majd meglátjuk, mi jelenik meg a beviteli mező inch; majd zanesom bármilyen számot a beviteli mezőbe inch és látni, hogy mennyi lesz centiméter. Általában azt látjuk, hogy a mi alkalmazás már teljesen működőképes (9.).

Ábra. 9. Teljesen működőképes alkalmazás Bindings1
2.6.2. Még néhány szó a-konverter
Azt kell mondani, hogy szükség van egy kétirányú mértékben kötődik ritkán. Sokkal gyakrabban alkalmazzák a gyakorlatban egyirányú kötődést. Ha ez a kötődés használ-konverter, egyáltalán nem kell végrehajtani az átalakítást „fordított” irányba.
Ebben az esetben a ConvertBack eljárás szervezetnek az a kifejezés, hogy a generál isklyuchanie System.NotImplementedException:
A front-end XAML-kód átalakító értékeket jelzi a tulajdonságok a Binding osztály Converter. Az érték a továbbított átalakító további érve (a harmadik argumentum fiók konvertálása módszerek és ConvertBack) lehet beállítani ConverterParameter tulajdonság; ha az érték értelmezi annak jelzéseként, hogy sorban a felület kódot. A ConverterLanguage ingatlan adható kijelölése nyelv és kultúra, amely átkerül a módszert, és ConvertBack Converter negyedik érv, Ez az érték van megadva karakterlánc.
Itt meg kell jegyezni, hogy a UWP platform maga, ha szükséges, ezeket az értékeket eltérő húrok string típusú. Azonban az eredmény ebben az esetben lehet, hogy nem erre van szükségünk; mondjuk, a számot átalakítjuk egy húr tekintet nélkül a nyelvi beállításokat (lebegőpontos számok kerülnek kiadásra, pont, mint egy tizedes), és a dátum - hosszú sora, amely szintén egy időben. Ezért, ha meg kívánja jeleníteni a képernyőn megjelenő adatok szigorúan meghatározott formában, ajánlott, hogy használjon megfelelő értéket átalakító.
A Windows-verzió 10, 1607 (Anniversary Frissítés) támogatást nyújt az átalakulás logikai elem a mennyiségek re lista. Az érték alakítjuk igaz Látható elem. és hamis - az összeomlott. Ezt az átalakítást úgy végezzük, hogy a platform UWP; nem kell foganatosítani nem történik intézkedés.
Figyelem!
A korábban leírt funkció nem fog működni a Windows korábbi verzióiban 10.
2.7. Szoftver létrehozása kötések
Néha hasznos lehet létrehozni egy kötelező programozottan C # function-kód alkalmazásokhoz. Ez akkor lehet hasznos, ha azt szeretné, hogy beépülő vevő elem különböző forrásokból függően bizonyos körülmények között, vagy használja ugyanazt a tárgyrasztert különböző elemeit.
Software létrehozása kötődés három lépésben végzik.
Az első szakaszban létrehoz egy Binding objektum osztály. A kivitelező nem telt el olyan érveket.
A második lépésben mutatja a paraméterek által létrehozott kötés: a forrás társítani a forrás tulajdon, a kötési iránya és a jeladó értékeket, ha szükséges. Ezeket a paramétereket beállítani a korábban tanulmányozták Binding osztály tulajdonságait:
- ElementName - a neve a forrás elem - mint string;
- Path - újralinkelni forrás elem tulajdonság - PropertyPath, mint egy tárgy osztályban. A karakterlánc nevét az ingatlan be van állítva a kivitelező ezen osztály egyetlen érv;
- Mode - kötési irány - mint BindingMode átadóelem;
- Converter - átalakító értékek - formájában a megfelelő osztály objektum;
- ConverterParameter - egy további érv az inverter értékek - lehet bármilyen típusú;
- ConverterLanguage - azon nyelv és kultúra - formájában egy sort.
A harmadik lépés megfelel kötő-vevő elem és annak tulajdonság. Erre a célra SetBinding módszer. okozza, hogy a vevő és a két paramétert fogad:
- függőség tulajdon - formájában kijelölését függőségi tulajdonság;
- peg - formájában az újonnan létrehozott objektum osztály kötése.
Itt egy példa, hogy létrehozza a kötelező alkalmazásunk a funkció kód (feltételezve, hogy a beviteli mező - a vevőnek van txtInches név):
Mert ezt a kódot sikeresen működik, akkor amellett, hogy megadja a nevét, a második beviteli mező is el kell távolítani a csap, a korábban létrehozott használatával vizuális eszközök Visual Studio, XAML-kódot. Ezt meg lehet tenni kattintva mindegy négyzet gomb található a jogot a beviteli mező Szöveg tulajdonságai panelen. és kiválasztja a legördülő menüpont visszaállítása.