WPF中的CommunityToolkit.Mvvm框架

📅 2026/8/6 5:24:54
WPF中的CommunityToolkit.Mvvm框架
1。概念安装使用重要APIObservableObjectRelayCommand|RelayCommandT, 封装视图模型定位器2。IOC控制反转和DI依赖注入IServiceProviderServiceCollection模块包Microsoft.Extensions.DependencyInjection3。源生成器[ObservableProperty][RelayCommand][INotifyPropertyChanged]只支持.net core4。命令详解异步命令AsyncRelayCommand 和 AsyncRelayCommandT自动依赖注入服务5。信使IMessengerWeakReferenceMessenger、StrongReferenceMessenger等Community社区 Toolkit工具包使用源生器有个前提只能部分类 parital class封装好自动依赖注入服务框架之后1。先添加视图2。再添加视图模型3。修改视图模型定位器添加属性4。绑定上下文Window DataContextBinding Source{StaticResource Locator}, PathMain}CommunityToolkit.Mvvm参考https://learn.microsoft.com/zh-cn/dotnet/communitytoolkit/mvvm/https://github.com/CommunityToolkithttps://www.cnblogs.com/7bao3shu/articles/19420516https://www.cnblogs.com/cdaniu/p/16848821.htmlhttps://blog.csdn.net/JetRaven12/article/details/156069254视图模型定位器的封装https://blog.csdn.net/u010975589/article/details/155889321向IOC容器中添加服务的三种方式ScopedTransientSingletonhttps://blog.csdn.net/u013400314/article/details/141598587自动依赖注入服务https://blog.csdn.net/u010975589/article/details/1558893211。什么是CommunityToolkit.Mvvm框架CommunityToolkit.Mvvm 包又名 MVVM 工具包以前称为 Microsoft.Toolkit.Mvvm是一个现代、快速和模块化的 MVVM 库。可以当成MvvmLight的替代品大部分的API和MvvmLight类似而MvvmLight不再更新了。而CommunityToolkit.Mvvm是微软官方推荐的MVVM工具包。2。CommunityToolkit.Mvvm框架中的重要对象ObservableObject可以让VM中的数据支持双向通知RelayCommandAsyncRelayCommand这两个对象可以给控件绑定命令异步命令IServiceProviderServiceCollection这两个对象可以当成IOC容器需要模块包Microsoft.Extensions.DependencyInjectionIMessengerWeakReferenceMessenger、StrongReferenceMessenger等这些对象让框架支持消息通讯了解的对象ObservableRecipient》MvvmLight中的ViewModelBaseObservableValidatorIRelayCommandIRelayCommandTIAsyncRelayCommandIAsyncRelayCommandT3。CommunityToolkit.Mvvm使用步骤参考课件a. 安装CommunityToolkit.Mvvm包为了支持IOC还需要安装Microsoft.Extensions.DependencyInjectionb.规划项目Models,Views,ViewModelsc.编写代码使用注意重要对象4。源生器是什么使用要求怎么使用源生成器它就是属性和命令的语法糖让开发者在编写视图模型中的属性和命令时语法更简洁将来会把简洁语法再通过编译器转换成要运行的代码。语法简洁是靠C#的特性来实现。使用要求a. 必须在部分类中使用原因源生器会再编译编译的时候会把开发者定义的部分类合并到一个大的VM中。b. 源生器靠C#中的特性来实现。[ObservableProperty][RelayCommand][INotifyPropertyChanged]c. 源生器仅支持.net Core平台。从版本 8.0 开始MVVM 工具包包含全新的 Roslyn 源生成器有助于在使用 MVVM 体系结构编写代码时大幅减少样本。说明源生成器支持.net core不支持.net framework。怎么使用参考课件5。信使MVVM 工具包提供两种现用的实现WeakReferenceMessenger 和 StrongReferenceMessenger前者在内部使用弱引用为收件人提供自动内存管理而后者使用强引用并要求开发人员在不再需要收件人时手动取消订阅收件人有关如何注销消息处理程序的更多详细信息可在下面找到但这一点换来的是提供更好的性能而且内存使用量要少得多