Samenvatting
De weer-app die u onderhoudt, maakt gebruik van een weerservice die onlangs de sluiting heeft aangekondigd. U moest beginnen met het onderzoeken van andere weerservices. Als u weet dat veranderende services betekent dat uw gegevens kunnen worden gewijzigd, wilde u wisselen van het gebruik van de code-achter om de gebruikersinterface bij te werken naar gegevensbinding. Op deze manier hoeft u zich geen zorgen te maken over welke weerservice u gaat gebruiken.
De gegevensbinding die u in de oefeningen hebt uitgevoerd, heeft de code verminderd die nodig is om de gebruikersinterface bij te werken wanneer de gegevens worden gewijzigd. In plaats van de gebeurtenis-handler van de knop te gebruiken om te communiceren met besturingselementen in de gebruikersinterface om de gegevens te presenteren, hebt u verplaatst naar gegevensbinding. Het gegevensobject van de weerservice is ingesteld als de bindingscontext voor de pagina en besturingselementen op de pagina zijn gebonden aan eigenschappen van dat gegevensobject. De gebruikersinterface is automatisch gesynchroniseerd met de gegevens, ongeacht hoe de weerservice is bijgewerkt. U hebt ook de code-achter voor de Fahrenheit-switch naar Celsius kunnen verminderen met behulp van gegevensbinding met een conversieprogramma.
Stel dat de code-behind wordt beïnvloed zonder gegevensbinding. Als u de naam van een besturingselement hebt gewijzigd, één besturingselement hebt gewijzigd in een ander type of zelfs een besturingselement hebt verwijderd, wordt uw code-behind niet meer gecompileerd. Als de weerservice geen specifiek gegevensveld meer biedt, zoals vochtigheid, loopt uw code vast wanneer deze wordt weergegeven in de gebruikersinterface. Gebruikers zouden de app plotseling niet meer laten werken en ze zouden niet weten wat er aan de hand was.
Met gegevensbinding worden de gegevens automatisch gesynchroniseerd met de gebruikersinterface. Zodra de weergegevens veranderen, verandert alles wat eraan is gebonden ook. Wanneer een eigenschapstype van de gebruikersinterface en het gegevensobjecttype niet overeenkomen, transformeert een conversieprogramma de afhankelijke gegevens zodat deze correct worden weergegeven door de gebruikersinterface. Dit vermindert de code-achter die nodig is om de gebruikersinterface te onderhouden. Waar de gegevens vandaan komen en hoe de gegevens zijn geactiveerd, is geen probleem voor de meeste gebruikersinterfaces. Als de vochtigheid niet meer in het gegevensobject is opgegeven, zou de gegevensgebonden gebruikersinterface niets weergeven voor het vochtigheidslabel in plaats van vast te lopen. Dat is een veel betere ervaring voor uw gebruikers in plaats van een crashende app.