C#教程

关注公众号 jb51net

关闭
首页 > 软件编程 > C#教程 > WPF中MVVM工具包CommunityToolkit.Mvvm

WPF中MVVM工具包CommunityToolkit.Mvvm的使用方式

作者:月落.

这篇文章主要介绍了WPF中MVVM工具包CommunityToolkit.Mvvm的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

WPF中MVVM工具包CommunityToolkit.Mvvm

CommunityToolkit.Mvvm,也称为MVVM工具包,是Microsoft Community Toolkit的一部分。它是一个轻量级但功能强大的MVVM(Model-View-ViewModel)库,旨在帮助开发者更容易地实现MVVM设计模式。

特点

用法

功能

该库提供了一些基础类和接口的实现,主要包括:

CommunityToolkit.Mvvm 包含的类型主要分为以下几个部分

CommunityToolkit.Mvvm.ComponentModel

CommunityToolkit.Mvvm.DependencyInjection

CommunityToolkit.Mvvm.Input

CommunityToolkit.Mvvm.Messaging

CommunityToolkit.Mvvm.Messaging.Messages

CommunityToolkit.Mvvm 还提供了一些关键属性和功能

ObservableObject

ObservableObjectCommunityToolkit.Mvvm 库中的一个基础类,它实现了 INotifyPropertyChanged 接口。这个接口是 .NET 数据绑定基础架构的一部分,当对象的一个属性改变时,它会通知绑定到该属性的任何元素。

public class MyViewModel : ObservableObject
{
    private string _myProperty;
    public string MyProperty
    {
        get => _myProperty;
        set => SetProperty(ref _myProperty, value);
    }
}

[ObservableProperty] 属性

[ObservableProperty] 是一个特性(Attribute),用于自动生成可观察属性的 getter 和 setter,这些属性会在值改变时触发 PropertyChanged 事件。

public partial class MyViewModel : ObservableObject
{
    [ObservableProperty]
    private string? _name;
}

这将生成一个类似下面的可观察属性:

public string? Name
{
    get => _name;
    set => SetProperty(ref _name, value);
}

[RelayCommand] 属性

[RelayCommand] 是一个特性,用于创建命令。命令是 MVVM 模式中的一个重要组成部分,用于将 View 的行为(如按钮点击)绑定到 ViewModel 中的方法。

public partial class MyViewModel : ObservableObject
{
    [RelayCommand]
    private void ExecuteCommand()
    {
        // Command execution logic here
    }
}

这将生成一个 ICommand 实现,可以被 View 绑定。

其他属性

RelayCommandAsyncRelayCommand

这些类实现了 ICommand 接口,用于创建命令,是 MVVM 模式中命令模式的实现。

IMessenger

消息传递接口,用于在不同的 ViewModel 或 View 之间传递消息,实现组件间的松散耦合通信。

PropertyChangedMessage<T>

用于属性变化的消息,是 IMessenger 接口实现中用于传递属性变更通知的一种消息类型。

RequestMessage<T>AsyncRequestMessage<T>

用于请求特定类型响应的消息,其中 AsyncRequestMessage<T> 是异步版本的请求消息。

CollectionRequestMessage<T>AsyncCollectionRequestMessage<T>

用于集合操作的请求消息,其中 AsyncCollectionRequestMessage<T> 是异步版本的集合请求消息。

ValueChangedMessage<T>

用于值变化的消息,是 IMessenger 接口实现中用于传递值变更通知的一种消息类型。

CommunityToolkit.Mvvm 的框架类

CommunityToolkit.Mvvm.ComponentModel

CommunityToolkit.Mvvm.DependencyInjection

CommunityToolkit.Mvvm.Input

CommunityToolkit.Mvvm.Messaging

CommunityToolkit.Mvvm.Messaging.Messages

CommunityToolkit.Mvvm是一个现代、快速和模块化的MVVM库,它提供了尽可能大的灵活性,让开发人员可以自由选择要使用的组件,以最符合需求的方式组合这些生成块。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文