Xamarin.Forms 数据绑定

Download Sample下载示例

数据绑定将两个对象的属性链接起来,如此,对某一属性的更改将自动反映在另一个属性中。 数据绑定是模型-视图-视图模型 (MVVM) 应用程序体系结构必不可少的一部分。

数据链接问题

Xamarin.Forms 应用程序由一个或多个页面组成,每个页面通常包含多个名为“视图”的用户界面对象。 该程序的一项首要任务是确保这些视图保持同步,并跟踪它们所表示的各种值或选项。 通常,视图表示来自基础数据源的值,用户可对这些视图进行处理以更改该数据。 当视图发生更改时,基础数据必会反映该更改;同样,当基础数据发生更改时,该更改必将反映在视图中。

要成功执行此作业,程序必须知晓这些视图或基础数据的更改。 常用的解决方案是定义一个事件,在发生更改时发出信号。 随后将安装事件处理程序,就这些更改进行通知。 它通过将数据从一个对象传输到另一个对象来响应。 但是,如果存在多个视图,就必须使用多个事件处理程序并将涉及大量代码。

数据绑定解决方案

数据绑定自动执行此作业,无需使用事件处理程序。 可以通过代码或 XAML 实现数据绑定,但更常采用 XAML,这有助于缩小代码隐藏文件的大小。 通过使用声明性代码或标记替换事件处理程序中的过程代码,可简化应用程序,使其清晰明了。

数据绑定涉及两个对象,其中一个几乎总是从 View 派生的元素,并构成页面可视界面的一部分。 另一个对象则是:

  • 派生自另一个 View,且通常位于同一页面。
  • 或是代码文件中的对象。

在演示程序中(如 DataBindingDemos 示例中的程序),为了清楚简便起见,通常会显示两个 View 派生对象之间的数据绑定。 但是,相同的原则也可应用于 View 和其他对象之间的数据绑定。 使用模型-视图-视图模型 (MVVM) 架构生成应用程序时,具有基础数据的类通常称为 viewmodel。

以下系列文章探讨了数据绑定:

基本绑定

了解数据绑定目标和源之间的区别,并查看以代码和 XAML 创建的简单数据绑定。

绑定模式

了解绑定模式如何控制两个对象之间的数据流。

字符串格式设置

使用数据绑定格式化对象并将其显示为字符串。

绑定路径

深入了解数据绑定的 Path 属性以访问子属性和集合成员。

绑定值转换器

使用绑定值转换器来更改数据绑定中的值。

相对绑定

使用相对绑定可设置相对于绑定目标位置的绑定源。

绑定回退

通过定义绑定过程失败时要使用的回退值,使数据绑定更加可靠。

多绑定

Binding 对象集合附加到单个绑定目标属性。

命令界面

使用数据绑定实现 Command 属性。

编译的绑定

使用已编译的绑定来提高数据绑定性能。