SuperAPI AI 工具集

wpf-mvvm-generator

编程与开发

查看项目

更新于 10-16 09:08

技能介绍

用途

WPF MVVM Generator 是一个用于 WPF 项目的代码生成技能,借助 CommunityToolkit.Mvvm 源生成器(source generator)来创建 MVVM 组件。当需要为新 WPF 功能或实体搭建脚手架时使用。

主要能力

技能接收两个参数:

  • $ARGUMENTS[0]:实体名称(必填),例如 User、Product、Order。
  • $ARGUMENTS[1]:生成类型(可选),可选值为 viewmodel、view、model、all,默认值为 all。

当选择 all 时,会生成 Model、ViewModel、View、Code-Behind、Messages 以及 Service Interface 全部内容。

生成内容包括:

  • Model:sealed class,包含 required 属性(如 Id、Name)以及根据上下文补充的属性。
  • ViewModel:partial class 继承 ObservableObject,使用 [ObservableProperty]、[NotifyPropertyChangedFor]、[NotifyCanExecuteChangedFor]、[RelayCommand] 等特性,包含 Load、Save、Delete 异步命令,支持 CancellationToken,并通过 WeakReferenceMessenger 发送消息。
  • View:UserControl XAML,包含 Header、Content、Actions 按钮区以及 Loading 遮罩层,使用 d:DataContext 设计时实例。
  • Code-Behind:最小化实现,仅调用 InitializeComponent。
  • Message Types:使用 sealed record 定义 Deleted、Selected、Saved 消息。
  • Service Interface:定义 GetAllAsync、GetByIdAsync、SaveAsync、DeleteAsync 方法。

使用方式

技能按以下步骤执行:

  1. 参数校验:若实体名称为空,则向用户请求,或基于项目现有 Model 提出建议;校验名称是否为 PascalCase、是否为 C# 保留字、是否含特殊字符或空格,不符合则要求重新输入。
  2. 项目结构探索:通过 Glob("**/*ViewModel.cs") 识别现有 ViewModel 模式,从首个匹配文件提取命名空间,检查 /ViewModels、/Views、/Models 目录是否存在,并搜索现有基类或接口。
  3. 代码生成:根据生成类型参数生成对应组件。

输出格式为 Markdown 报告,包含实体名称、生成文件表格(文件、路径、状态)以及后续步骤建议:实现 I{EntityName}Service、注册到 DI 容器、添加 View 导航、按需生成设计时数据。

适用场景

  • 在 WPF 项目中快速搭建符合 MVVM 模式的新功能或实体。
  • 需要统一使用 CommunityToolkit.Mvvm 源生成器风格的项目。
  • 需要同时生成 Model、ViewModel、View、消息类型与服务接口的完整脚手架场景。

限制与约定

  • 所有说明性输出必须使用韩语;代码标识符、技术术语、模式名称保持原文。
  • 遵循项目现有命名规则。
  • 生成最小化的 Code-Behind,仅包含 UI 逻辑。
  • 包含适当的 XML 文档注释。
  • 异步操作支持 CancellationToken。
  • ViewModel 间通信使用 WeakReferenceMessenger。

错误处理:实体名称未输入时向用户请求或基于现有 Model 建议;名称无效(特殊字符、保留字)时要求重新输入;ViewModels/Views/Models 目录不存在时自动创建后继续;同名文件已存在时向用户确认是否覆盖。

关于收费、价格、平台支持范围等信息,资料中暂未提供。