【CommunityToolkit.Mvvm】 开篇
MVVM 工具包简介
包 CommunityToolkit.Mvvm
(名为 MVVM 工具包,以前名为 Microsoft.Toolkit.Mvvm
) 是一个现代、快速和模块化的 MVVM 库。 它是 Windows 社区工具包的一部分,围绕以下原则构建:
- 平台和运行时独立 - .NET Standard 2.0、 .NET Standard 2.1 和 .NET 6🚀 (UI Framework 不可知)
- 易于选取和使用 - 无需对应用程序结构或编码范例的严格要求, (“MVVM”) 之外,即灵活使用。
- 笛卡尔 - 自由选择要使用的组件。
- 参考实现 - 精益和高性能,为基类库中包含的接口提供实现,但缺少直接使用它们的具体类型。
MVVM 工具包由 Microsoft 维护和发布,也是 .NET Foundation 的一部分。 它还由内置于 Windows 的多个第一方应用程序(如 Microsoft Store)使用。
此包面向 .NET Standard,因此可在任何应用平台上使用:UWP、WinForms、WPF、Xamarin、Uno 等;在任何运行时:.NET Native、.NET Core、.NET Framework 或 Mono。 它在所有上运行。 在所有情况下,API 图面完全相同,因此非常适合生成共享库。
此外,MVVM 工具包还具有 .NET 6 目标,用于在 .NET 6 上运行时启用更多内部优化。 在这两种情况下,公共 API 图面都相同,因此 NuGet 始终可以解决包的最佳版本,而使用者无需担心哪些 API 在其平台上可用。
入门
若要从 Visual Studio 中安装包,请执行以下操作:
-
在解决方案资源管理器中,右键单击项目并选择“管理 NuGet 包”。 搜索 CommunityToolkit.Mvvm 并安装它。
-
添加 using 或 Imports 指令以使用新 API:
c#
using CommunityToolkit.Mvvm;
-
Imports CommunityToolkit.Mvvm
-
代码示例可在 MVVM 工具包的其他文档页和项目的 单元测试 中获取。
何时应使用此包?
使用此包可以访问标准、独立、轻型类型的集合,这些类型提供使用 MVVM 模式生成新式应用的入门实现。 这些类型通常足以让许多用户生成应用,而无需其他外部引用。
包括的类型包括:
- CommunityToolkit.Mvvm.ComponentModel
ObservableObject
:实现了
System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.INotifyPropertyChanging
ObservableRecipient
:ObservableRecipient设计出来是用来作为viewmodel的基础(或者说基对象)的,它也使用了IMessenger的特性,它继承ObservableObject,因为它为IMessenger提供了内置支持。
ObservableValidator
:ObservableValidator 可以作为model的基类。ObservableObject、INotifyPropertyChanged、INotifyDataErrorInfo
- CommunityToolkit.Mvvm.DependencyInjection
- CommunityToolkit.Mvvm.Input
- CommunityToolkit.Mvvm.Messaging
- CommunityToolkit.Mvvm.Messaging.Messages
此包旨在尽可能灵活地提供,因此开发人员可以自由选择要使用的组件。 所有类型都是松散耦合的,因此只需包含使用的内容。 无需使用特定一系列包含的 API 进行“全能”,也不需要使用这些帮助程序生成应用时需要遵循的一组强制模式。 将这些构建基块组合在一起,以最适合你的需求的方式进行组合。