CommunityToolkit.Mvvm 是一个现代、快速和模块化的 MVVM 库,用于 .NET 应用程序。以下是如何使用 CommunityToolkit.Mvvm 的基本步骤:

  1. 安装包

    • 你可以通过 NuGet 包管理器安装 CommunityToolkit.Mvvm。在 Visual Studio 中,你可以通过“解决方案资源管理器”右键单击项目选择“管理 NuGet 包”,搜索 CommunityToolkit.Mvvm 并安装它。或者使用命令行:
      dotnet add package CommunityToolkit.Mvvm
    • 添加 using 或 Imports 指令以使用新 API:
      using CommunityToolkit.Mvvm;
  2. 创建 ViewModel

    • 使用 ObservableObject 作为 ViewModel 的基类,这样你的 ViewModel 就会自动实现 INotifyPropertyChanged 接口,从而支持数据绑定和属性变更通知。
    • 例如:
      public class MyViewModel : ObservableObject
      {
          private string _firstName;
          public string FirstName
          {
              get => _firstName;
              set => SetProperty(ref _firstName, value);
          }
      }
  3. 使用源生成器

    • CommunityToolkit.Mvvm 提供了源生成器来简化 ViewModel 的创建。你可以通过为字段添加 [ObservableProperty] 特性来自动生成属性和变更通知。
    • 例如:
      [ObservableObject]
      public partial class MyViewModel
      {
          [ObservableProperty]
          private string _firstName;
      }
  4. 创建命令

    • 使用 RelayCommand 或 AsyncRelayCommand 来创建可以绑定到 UI 元素的命令。
    • 例如:
      public class MyViewModel : ObservableObject
      {
          public IRelayCommand SayHelloCommand { get; }
      
          public MyViewModel()
          {
              SayHelloCommand = new RelayCommand(SayHello);
          }
      
          private void SayHello()
          {
              // Command logic here
          }
      }
  5. 消息传递

    • 使用 IMessenger 接口和 WeakReferenceMessenger 或 StrongReferenceMessenger 类来进行不同 ViewModel 或 View 之间的消息传递。
  6. 数据转换

    • 使用 IValueConverter 接口创建值转换器,以便在数据绑定中转换数据。
  7. 使用特性

    • 利用 CommunityToolkit.Mvvm 提供的各种特性,如 [AlsoNotifyChangeFor] 来通知其他属性的变更,[AlsoNotifyCanExecuteFor] 来通知命令的可执行状态变更。
  8. 包装非Observable模型

    • 如果你有来自数据库或其他来源的非Observable模型,可以使用 SetProperty 方法来包装这些模型,使其支持属性变更通知。

更多推荐