SuperAPI AI 工具集

dotnet-mvvm

数据与分析

查看项目

更新于 10-16 09:31

技能介绍

用途:帮助在 .NET 应用中实现 MVVM(Model-View-ViewModel)模式,做到视图与业务逻辑关注点分离,构建可单元测试的 ViewModel。适用于需要可测试 UI 架构、处理命令/属性变更/消息、或在 MVVM 框架间选型的场景。

核心概念:Model 承载业务逻辑与数据(如 Product、Order、User);View 负责 UI 呈现(XAML/Razor);ViewModel 承载 UI 逻辑与状态。工作流要求 View 保持“笨”——code-behind 无业务逻辑;通过数据绑定连接 View 与 ViewModel 属性;用 ICommand 处理用户交互;服务通过构造函数注入 ViewModel;ViewModel 应可脱离 UI 做单元测试。

主要能力:以 CommunityToolkit.Mvvm 为例,[ObservableProperty] 与 [RelayCommand] 源生成器简化属性通知与命令;[NotifyCanExecuteChangedFor] 联动命令可用性;支持异步命令与取消(IncludeCancelCommand);WeakReferenceMessenger 实现组件间松耦合消息;ObservableValidator 结合 Required、EmailAddress、MinLength 等做验证并 ValidateAllProperties;通过 DI 注册服务与 ViewModel,可用 ViewModelLocator 模式;XAML 中 {x:Bind} 绑定属性与命令。设置示例:<PackageReference Include="CommunityToolkit.Mvvm" Version="8.*" />。

反模式提醒:code-behind 写逻辑、ViewModel 引用 View、手写 INotifyPropertyChanged、God ViewModel、View 直调服务、直接暴露 Model。框架对比中,MVVM Toolkit 有源生成器、维护活跃、轻量,但无内置 DI 与导航;Prism 有 DI 和导航但较重;MVVMLight 已停止维护。

限制:具体安装命令、价格与平台支持资料未提供;官方文档链接指向参考文件夹中的 patterns.md 与 anti-patterns.md。