总结和知识检查

已完成

本模块介绍了通用 Windows 平台 (UWP) 和 Windows Presentation Foundation (WPF) 是如何支持数据绑定的。 你现在已详细了解以自动、可靠和高性能方式连接应用 UI 和业务逻辑的过程。

此外,你还学习了如何在代码中的对象属性更改时更新 UI,以及如何在 UI 更改时更新属性。 你已在 ListBoxComboBox 中显示了元素(如颜色)列表:多个可用于在屏幕上显示项集合的控件中的两个。 如果已按照各个教程操作,现在你还会具备控制这些控件中各项显示的实践经验。 此外,你还体验了如何通知业务逻辑用户已选择某个项。 最后一点是,你现在已了解如何自动在 UI 上反映集合更改(如添加项或删除项)。

在开发中等复杂程度的应用时,这种 UI 和逻辑的分离至关重要。 这样一来,业务逻辑(代码)可以从业务对象角度考虑。 例如,在请求获取用户名时,无需考虑在逻辑中使用 TextBox 控件。 只需处理用户输入的文本的 String 对象。 “最喜欢颜色”列表存储的是实际 ColorDescriptor 对象,而不是与 UI 相关的对象(如 ListItem)。 不过,由于数据绑定,UI 仍能以设计人员选择的任何方式显示这些项:在 ListBox 中、在 ComboBox 中、使用含卡的网格状布局,或甚至是在传送视图中。 无需为了任何这些选择而改变业务逻辑。

此外,如果逻辑和 UI 良好分离,你还可以为业务逻辑单独编写自动单元测试。 无需启动应用即可运行这些测试(例如,使用 Visual Studio 单元测试)。 这些测试依赖经过反复考验的数据绑定机制,在 UI 和业务逻辑代码之间传输数据。

简化类编码

最后,本模块介绍了如何利用基类来简化数据绑定易用类的编码。 这是遵循行业最佳做法(模型-视图-视图模型 (MVVM) 体系结构)的第一步。

在我们的小型示例中,ColorDescriptor 类是“模型”的典型例证。 在此示例中,关于实际对象或概念,存储的数据为颜色。

“视图”是 XAML 代码:MainPage.xaml (UWP)/MainWindow.xaml (WPF) 和 ColorList.xaml,以及它们的代码隐藏文件 MainPage.xaml.cs (UWP)/MainWindow.xaml.cs (WPF) 和 ColorList.xaml.cs。

用于驱动 UI、做出决策(是否应启用按钮等)的实际业务逻辑是“视图模型”。 在 UWP 示例中,MainPageLogicColorListLogic 类本质上就是视图模型类。 在 WPF 示例中,MainWindowDataContextClockColorListDataContext 类是视图模型。

MVVM 是支持数据绑定的 UI 框架的最广泛使用体系结构模式。 许多 MVVM 工具包和框架都可用于快速开始在 UWP 和 WPF 或甚至 Windows 应用 SDK 和 .NET MAUI 中开发。 下面是一些最常用的工具包和框架:

结束语

至此,已做好 Windows 开发准备,强烈建议你继续学习。 请学习下一模块,详细了解如何将应用连接到云。 但请先完成以下知识检查测验。

知识检查

1.

什么是数据绑定?

2.

若要在 UI 上反映 C# 属性更改,必须实现哪个接口?

3.

如何通过数据绑定将用户在文本框中输入的文本传输到 C# 字符串属性?

4.

如何在列表框中显示 IEnumerable 集合中存储的对象?

5.

你要在应用运行时向集合添加项。 如何让 UI 反映这些更改?