编辑
2025-11-25
C#
00

概述

IMessenger 是 CommunityToolkit.Mvvm 中的核心消息传递接口,提供了一种松耦合的通信机制,允许应用程序中的不同组件之间高效地交换消息。本文将详细探讨 IMessenger 的使用方法和最佳实践。

Nuget 安装包

image.png

消息类型定义

在使用 IMessenger 时,我们需要定义清晰的消息类型。以下是消息类型的推荐设计:

C#
// 定义基础消息类型 public class BaseMessage { public DateTime Timestamp { get; set; } = DateTime.Now; } // 具体的消息类型 public class UserMessage : BaseMessage { public string Username { get; set; } public string Content { get; set; } } public class SystemNotificationMessage : BaseMessage { public string NotificationType { get; set; } public string Message { get; set; } }
编辑
2025-11-25
C#
00

概述

在现代 .NET 应用程序开发中,CommunityToolkit.Mvvm 提供了强大的命令实现机制,特别是 [RelayCommand] 特性和 IRelayCommand 接口,极大地简化了 MVVM 模式下的命令绑定和处理。

Nuget 安装包

image.png

[RelayCommand] 特性基础

基本用法

[RelayCommand] 特性允许你快速创建命令,无需手动编写样板代码。

C#
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; namespace App08 { public partial class UserViewModel: ObservableObject { // 简单命令 [RelayCommand] private void SaveUser() { // 保存用户逻辑 Console.WriteLine("用户已保存"); } } }
C#
namespace App08 { internal class Program { static void Main(string[] args) { var viewModel = new UserViewModel(); // 使用生成的命令属性 viewModel.SaveUserCommand.Execute(null); Console.ReadKey(); } } }

image.png

编辑
2025-11-25
C#
00

IRelayCommand 是 CommunityToolkit.Mvvm 库中的核心接口,用于定义命令的基本行为和状态管理。它继承自 ICommand 接口,并提供了更丰富的功能和更好的类型支持。

主要特点:

  • 支持命令执行
  • 提供命令可执行状态管理
  • 类型安全
  • 支持泛型参数

Nuget 安装包

image.png

编辑
2025-11-25
C#
00

RelayCommand是CommunityToolkit.Mvvm库中非常强大的命令实现,它简化了MVVM模式中命令的创建和使用。本文将详细探讨RelayCommand的各种应用场景。

RelayCommand 的主要作用

  1. 简化命令创建
    • 提供轻量级的命令实现
    • 减少样板代码
    • 支持无参数和带参数的命令
  2. 解耦用户交互逻辑
    • 将界面交互逻辑从视图中分离
    • 提高代码的可测试性和可维护性

Nuget 安装包

image.png

编辑
2025-11-25
C#
00

在 MVVM 架构中,属性变更通知是保持视图和模型同步的关键机制。NotifyPropertyChangedFor 特性是 CommunityToolkit.Mvvm 提供的一个强大工具,它允许我们在一个属性发生变更时,自动触发其他相关属性的通知。

Nuget 安装CommunityToolkit.Mvvm

image.png

基本概念

NotifyPropertyChangedFor 特性的主要作用是:

  • 当装饰的属性发生变更时,自动触发其他指定属性的 PropertyChanged 事件
  • 减少手动编写属性通知的重复代码
  • 简化属性依赖关系的管理