Sammanfattning

Slutförd

Väderappen som du underhåller använder en vädertjänst som nyligen meddelade att den skulle stängas. Du behövde börja undersöka andra vädertjänster. Om du vet att ändrade tjänster innebär att dina data kan ändras vill du växla från att använda koden bakom för att uppdatera användargränssnittet till databindningen. På så sätt behöver du inte oroa dig för att användargränssnittet påverkas när du bestämmer vilken vädertjänst du ska använda.

Databindningen du gjorde i övningarna minskade den kod som krävs för att uppdatera användargränssnittet när data ändras. I stället för att använda knappens händelsehanterare för att interagera med kontroller i användargränssnittet för att presentera data, flyttade du till databindning. Vädertjänstens dataobjekt angavs som bindningskontext för sidan och kontrollerna på sidan var bundna till egenskaperna för dataobjektet. Användargränssnittet synkroniserades automatiskt med data, oavsett hur vädertjänsten uppdaterades. Du kunde också minska koden bakom för Fahrenheit till Celsius-växeln med hjälp av databindning med en konverterare.

Tänk dig att koden bakom påverkas utan databindning. Om du har bytt namn på en kontroll, ändrat en kontroll till en annan typ eller till och med tagit bort en kontroll, kompileras inte längre koden bakom. Om vädertjänsten slutade tillhandahålla ett specifikt datafält, till exempel luftfuktighet, kraschar koden när du försöker presentera den i användargränssnittet. Användarna skulle få appen att plötsligt sluta fungera och de skulle inte veta vad som pågick.

Databindningen synkroniserar automatiskt data med användargränssnittet. Så snart väderdata ändras ändras även allt som är bundet till dem. När en UI-egenskapstyp och dataobjekttyp inte matchar, transformerar en konverterare de bundna data så att de presenteras korrekt av användargränssnittet. Detta minskar den bakomliggande koden som krävs för att underhålla användargränssnittet. Var data kommer från och hur data utlöstes bryr sig inte om det mesta av användargränssnittet. Om luftfuktigheten inte längre angavs i dataobjektet skulle det databundna användargränssnittet inte visa något för fuktighetsetiketten i stället för att krascha. Det är en mycket bättre upplevelse för dina användare i stället för en kraschande app.

Läs mer