关于写策划的一个网站,竞价推广教程,wordpress media调用,类似直播平台网站的建设费用CommunityToolkit.Mvvm#xff0c;也称为MVVM工具包#xff0c;是Microsoft Community Toolkit的一部分。它是一个轻量级但功能强大的MVVM#xff08;Model-View-ViewModel#xff09;库#xff0c;旨在帮助开发者更容易地实现MVVM设计模式。
特点
独立于平台和运行时也称为MVVM工具包是Microsoft Community Toolkit的一部分。它是一个轻量级但功能强大的MVVMModel-View-ViewModel库旨在帮助开发者更容易地实现MVVM设计模式。
特点
独立于平台和运行时支持.NET Standard 2.0、.NET Standard 2.1 和 .NET 6与UI框架无关可在UWP、WinForms、WPF、Xamarin、Uno等平台上使用。易于选取和使用对应用程序结构或编码范例没有严格需求可以灵活使用。按需取用自由选择要使用的组件所有类型都是松散耦合的。引用实现为基类库中包含的接口提供实现但缺少直接使用它们所需的具体类型。
用法
安装在Visual Studio中通过NuGet包管理器搜索并安装CommunityToolkit.Mvvm包引用在项目中添加using CommunityToolkit.Mvvm;来使用新API。实现MVVM通过继承ObservableObject来创建ViewModel利用SetProperty方法实现属性变更通知以及使用RelayCommand或AsyncRelayCommand来实现命令模式。
功能
该库提供了一些基础类和接口的实现主要包括
ObservableObject 和 ObservableRecipient这些类实现了INotifyPropertyChanged接口并提供了SetProperty方法可以在属性值改变时触发PropertyChanged事件简化数据绑定。ICommand接口的实现如RelayCommand和AsyncRelayCommand这些类可以帮助创建命令命令是MVVM模式中的一个重要组成部分。IMessenger和相关消息传递机制如WeakReferenceMessenger和StrongReferenceMessenger用于组件间的松散耦合通信。
CommunityToolkit.Mvvm 包含的类型主要分为以下几个部分 CommunityToolkit.Mvvm.ComponentModel ObservableObject实现了 INotifyPropertyChanged 接口用于创建响应属性变化的ViewModel。ObservableRecipient用于消息传递的基类。ObservableValidator用于数据验证的基类。 CommunityToolkit.Mvvm.DependencyInjection Ioc提供依赖注入的容器和相关服务。 CommunityToolkit.Mvvm.Input RelayCommand一个简单的命令实现用于执行无参方法。RelayCommandT一个泛型版本的 RelayCommand用于执行带参方法。AsyncRelayCommand一个异步命令实现用于执行异步无参方法。AsyncRelayCommandT一个异步命令实现用于执行异步带参方法。IRelayCommandRelayCommand 的接口定义。IRelayCommandTRelayCommandT 的接口定义。IAsyncRelayCommandAsyncRelayCommand 的接口定义。IAsyncRelayCommandTAsyncRelayCommandT 的接口定义。 CommunityToolkit.Mvvm.Messaging IMessenger消息传递接口定义了消息发送和订阅的方法。WeakReferenceMessenger一个使用弱引用的消息传递类用于避免内存泄漏。StrongReferenceMessenger一个使用强引用的消息传递类。IRecipientTMessage消息接收者接口用于接收特定类型的消息。MessageHandlerTRecipient, TMessage消息处理程序用于处理特定类型的消息。 CommunityToolkit.Mvvm.Messaging.Messages PropertyChangedMessageT用于属性变化的消息。RequestMessageT用于请求特定类型响应的消息。AsyncRequestMessageT异步版本的 RequestMessageT。CollectionRequestMessageT用于集合操作的请求消息。AsyncCollectionRequestMessageT异步版本的 CollectionRequestMessageT。ValueChangedMessageT用于值变化的消息。
CommunityToolkit.Mvvm 还提供了一些关键属性和功能 ObservableObject ObservableObject 是 CommunityToolkit.Mvvm 库中的一个基础类它实现了 INotifyPropertyChanged 接口。这个接口是 .NET 数据绑定基础架构的一部分当对象的一个属性改变时它会通知绑定到该属性的任何元素。用法ViewModel 通常会继承自 ObservableObject 类。示例代码 public class MyViewModel : ObservableObject
{private string _myProperty;public string MyProperty{get _myProperty;set SetProperty(ref _myProperty, value);}
} [ObservableProperty] 属性 [ObservableProperty] 是一个特性Attribute用于自动生成可观察属性的 getter 和 setter这些属性会在值改变时触发 PropertyChanged 事件。用法直接在 ViewModel 的属性上使用 [ObservableProperty] 特性。示例代码 public partial class MyViewModel : ObservableObject
{[ObservableProperty]private string? _name;
} 这将生成一个类似下面的可观察属性 public string? Name
{get _name;set SetProperty(ref _name, value);
} [RelayCommand] 属性 [RelayCommand] 是一个特性用于创建命令。命令是 MVVM 模式中的一个重要组成部分用于将 View 的行为如按钮点击绑定到 ViewModel 中的方法。用法在 ViewModel 中的方法上使用 [RelayCommand] 特性。示例代码 public partial class MyViewModel : ObservableObject
{[RelayCommand]private void ExecuteCommand(){// Command execution logic here}
} 这将生成一个 ICommand 实现可以被 View 绑定。
其他属性 RelayCommand 和 AsyncRelayCommand 这些类实现了 ICommand 接口用于创建命令是 MVVM 模式中命令模式的实现。 IMessenger 消息传递接口用于在不同的 ViewModel 或 View 之间传递消息实现组件间的松散耦合通信。 PropertyChangedMessageT 用于属性变化的消息是 IMessenger 接口实现中用于传递属性变更通知的一种消息类型。 RequestMessageT 和 AsyncRequestMessageT 用于请求特定类型响应的消息其中 AsyncRequestMessageT 是异步版本的请求消息。 CollectionRequestMessageT 和 AsyncCollectionRequestMessageT 用于集合操作的请求消息其中 AsyncCollectionRequestMessageT 是异步版本的集合请求消息。 ValueChangedMessageT 用于值变化的消息是 IMessenger 接口实现中用于传递值变更通知的一种消息类型。
CommunityToolkit.Mvvm 的框架类 CommunityToolkit.Mvvm.ComponentModel ObservableObject实现了 INotifyPropertyChanged 和 INotifyPropertyChanging 接口用于创建响应属性变化的 ViewModel。ObservableRecipient用于消息传递的基类。ObservableValidator用于数据验证的基类。 CommunityToolkit.Mvvm.DependencyInjection Ioc提供依赖注入的容器和相关服务。 CommunityToolkit.Mvvm.Input RelayCommand一个简单的命令实现用于执行无参方法。RelayCommandT一个泛型版本的 RelayCommand用于执行带参方法。AsyncRelayCommand一个异步命令实现用于执行异步无参方法。AsyncRelayCommandT一个异步命令实现用于执行异步带参方法。IRelayCommandRelayCommand 的接口定义。IRelayCommandTRelayCommandT 的接口定义。IAsyncRelayCommandAsyncRelayCommand 的接口定义。IAsyncRelayCommandTAsyncRelayCommandT 的接口定义。 CommunityToolkit.Mvvm.Messaging IMessenger消息传递接口定义了消息发送和订阅的方法。WeakReferenceMessenger一个使用弱引用的消息传递类用于避免内存泄漏。StrongReferenceMessenger一个使用强引用的消息传递类。IRecipientTMessage消息接收者接口用于接收特定类型的消息。MessageHandlerTRecipient, TMessage消息处理程序用于处理特定类型的消息。 CommunityToolkit.Mvvm.Messaging.Messages PropertyChangedMessageT用于属性变化的消息。RequestMessageT用于请求特定类型响应的消息。AsyncRequestMessageT异步版本的 RequestMessageT。CollectionRequestMessageT用于集合操作的请求消息。AsyncCollectionRequestMessageT异步版本的 CollectionRequestMessageT。ValueChangedMessageT用于值变化的消息。
CommunityToolkit.Mvvm是一个现代、快速和模块化的MVVM库它提供了尽可能大的灵活性让开发人员可以自由选择要使用的组件以最符合需求的方式组合这些生成块。