Podsumowanie
Aplikacja pogodowa, którą utrzymujesz, korzysta z usługi pogodowej, która niedawno ogłosiła jej zamknięcie. Musisz rozpocząć badanie innych usług pogodowych. Wiedząc, że zmiana usługi oznacza, że dane mogą ulec zmianie, chcesz przejść od korzystania z kodu-behind do powiązania danych w celu zaktualizowania interfejsu użytkownika. W ten sposób, gdy zdecydujesz, której usługi pogodowej zamierzasz używać, nie musisz martwić się o wpływ interfejsu użytkownika.
Powiązanie danych, które wykonano w ćwiczeniach, zmniejszyło kod wymagany do zaktualizowania interfejsu użytkownika po zmianie danych. Zamiast używać obsługi zdarzeń przycisku do interakcji z kontrolkami na interfejsie użytkownika w celu prezentowania danych, zastosowałeś powiązanie danych. Obiekt danych usługi pogodowej został ustawiony jako kontekst powiązania dla strony, a kontrolki na stronie były powiązane z właściwościami tego obiektu danych. Interfejs użytkownika został automatycznie zsynchronizowany z danymi, niezależnie od sposobu aktualizacji usługi pogodowej.
Wyobraź sobie, że kod jest zmieniony bez powiązania danych. Jeśli zmieniono nazwę kontrolki, zmieniono jedną kontrolkę na inny typ, a nawet usunięto kontrolkę, kod nie będzie już kompilowany. Jeśli usługa pogodowa przestała dostarczać określone pole danych, takie jak wilgotność, kod ulegnie awarii podczas próby przedstawienia go w interfejsie użytkownika. Aplikacja nagle przestawała działać, a użytkownicy nie wiedzieli, co się dzieje.
Powiązanie danych automatycznie synchronizuje dane z interfejsem użytkownika. W chwili, gdy dane o pogodzie się zmienią, wszystkie powiązane z nimi obiekty również się zmieniają. Gdy typ właściwości interfejsu użytkownika i typ obiektu danych nie są zgodne, konwerter przekształca powiązane dane, aby były prezentowane poprawnie przez interfejs użytkownika. Zmniejsza to obciążenie kodu wymagane do obsługi interfejsu użytkownika. Skąd pochodzą dane i jak zostały uruchomione, nie ma znaczenia dla większości interfejsu użytkownika. Jeśli wilgotność nie została już podana w obiekcie danych, interfejs użytkownika powiązanego z danymi nie będzie pokazywał nic dla etykiety wilgotności zamiast ulegać awarii. Jest to znacznie lepsze środowisko dla użytkowników zamiast aplikacji, która uległa awarii.