Сводка
Приложение погоды, которое вы поддерживаете, использует службу погоды, которая недавно объявила о его закрытии. Вам нужно начать изучение других погодных служб. Зная, что изменение служб означает, что ваши данные могут измениться, вы хотите заменить использование кода программной части для обновления пользовательского интерфейса на привязку данных. Таким образом, когда вы решите, какая служба погоды вы собираетесь использовать, вам не нужно беспокоиться о влиянии пользовательского интерфейса.
Привязка данных, которые вы сделали в упражнениях, сократила код, необходимый для обновления пользовательского интерфейса при изменении данных. Вместо использования обработчика событий кнопки для взаимодействия с элементами управления в пользовательском интерфейсе для представления данных вы перемещены в привязку данных. Объект данных службы погоды был задан в качестве контекста привязки для страницы, а элементы управления на странице привязаны к свойствам этого объекта данных. Пользовательский интерфейс автоматически синхронизирован с данными независимо от того, как обновлена служба погоды. Кроме того, вы смогли уменьшить код для коммутатора Fahrenheit по Цельсию с помощью привязки данных с преобразователем.
Представьте, что код отстает от привязки данных. Если вы переименовали элемент управления, измените один элемент управления на другой тип или даже удалили элемент управления, код больше не компилируется. Если служба погоды перестала предоставлять определенное поле данных, например влажность, код завершится сбоем при попытке представить его в пользовательском интерфейсе. Пользователи будут внезапно перестать работать, и они не знают, что происходит.
Привязка данных автоматически синхронизирует данные с пользовательским интерфейсом. Как только данные о погоде изменяются, все, что привязано к нему, также изменяется. Если тип свойства пользовательского интерфейса и тип объекта данных не совпадают, преобразователь преобразует привязанные данные таким образом, чтобы он был правильно представлен пользовательским интерфейсом. Это сокращает код, необходимый для поддержания пользовательского интерфейса. Откуда приходят данные и откуда активируются данные, не беспокоят большую часть пользовательского интерфейса. Если влажность больше не была предоставлена в объекте данных, пользовательский интерфейс, привязанный к данным, не будет отображать ничего для метки влажности вместо сбоя. Это гораздо лучше для пользователей вместо аварийного приложения.