总结

已完成

你负责维护的天气应用所使用的天气服务最近宣布关闭。 你需要开始调查其他天气服务。 你知道服务更改意味着数据可能会更改,因此你想要从使用代码隐藏更新 UI 换成数据绑定。 这样一来,当你决定要使用哪个天气服务时,你不必担心 UI 受到影响。

你在练习中执行的数据绑定减少了在数据更改时更新 UI 所需的代码。 你选择改用数据绑定,而不是使用按钮的事件处理程序与 UI 上的控件进行交互来呈现数据。 天气服务的数据对象设置为页面的绑定上下文,页面上的控件绑定到该数据对象的属性。 无论天气服务如何更新,UI 都会自动与数据同步。 还可以通过将数据绑定与转换器结合使用,减少华氏度与摄氏度的切换的代码隐藏。

假设代码隐藏在没有数据绑定的情况下受到影响。 如果你重命名了控件、将一个控件更改为另一种类型,甚至删除了控件,则代码隐藏将不再编译。 如果天气服务停止提供特定数据字段(例如湿度),则尝试在 UI 中显示它时代码会崩溃。 用户会让应用突然停止工作,而他们不知道发生了什么。

数据绑定会自动将数据与 UI 同步。 天气数据发生更改后,绑定到它的任何内容也会发生变化。 当 UI 属性类型和数据对象类型不匹配时,转换器会转换绑定数据,以便 UI 正确呈现它。 这减少了维护 UI 所需的代码隐藏。 数据来自何处以及如何触发数据与 UI 大部分无关。 如果数据对象上不再提供湿度,则数据绑定的 UI 会为湿度标签显示空白,而不会崩溃。 对于你的用户来说,这比起应用崩溃是一种更好的体验。