数据绑定

Browse sample.浏览示例

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

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

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

数据绑定是将两个对象的属性链接起来的技术,其中一个属性的更改会自动反映在另一个属性中。 数据绑定涉及两个对象,其中一个几乎总是从 View 派生的元素,并构成页面可视界面的一部分。 另一个对象则是:

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

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

重要

.NET MAUI 会封送对 UI 线程的绑定更新。 使用 MVVM 时,可以使用为 UI 线程提供更新的 .NET MAUI 绑定引擎对任何线程中的数据绑定 viewmodel 属性进行更新。