WPF MVVM AI Prompt 示例(专为 C# 上位机开发优化)

以下是针对 WPF + MVVM 的高质量 Prompt 模板,特别适合通义灵码、Trae、Cursor 等 AI 工具使用。建议配合 .cursorrules 文件强制规范(推荐使用 CommunityToolkit.Mvvm)。

1. 基础 ViewModel 创建模板(最常用)

使用 C# WPF + CommunityToolkit.Mvvm 实现以下功能:

创建一个名为 [YourFeature]ViewModel,严格遵循 MVVM 模式:
- 使用 [ObservableProperty] 声明所有可绑定属性
- 使用 [RelayCommand] 声明所有命令
- 实现 INavigationAware 或 IActiveAware(如需要)
- 所有异步操作必须使用 async/await + 异常处理
- 加入必要的属性变更通知和 CanExecute 逻辑

具体需求:
- 属性:Title、IsBusy、StatusMessage、DataList(ObservableCollection<T>)
- 命令:LoadDataCommand、SaveCommand、RefreshCommand
- 支持 Dependency Injection(构造函数注入 IXXXService)
- 添加 Loading 状态管理和用户友好错误提示

参考现有代码风格:
@file: MainWindowViewModel.cs
@file: BaseViewModel.cs

生成完整可直接使用的 ViewModel 类,并附带 XAML 中绑定的示例。

2. 实时数据上位机专用(串口/网口数据绑定)

使用 WPF + MVVM + CommunityToolkit.Mvvm + LiveChartsCore 实现一个实时数据监控 ViewModel。

要求:
- 属性:Temperature、Pressure、Voltage、DataPoints(ObservableCollection<ChartPoint>)
- 每 200ms 接收一次串口/网口数据(模拟或注入 ICommunicationService)
- 使用 DispatcherTimer 或 Task.Run + Dispatcher 更新 UI
- 自动维护最近 500 个数据点,防止内存泄漏
- 包含 StartMonitoringCommand / StopMonitoringCommand
- 加入线程安全处理(线程间通信)
- 错误处理:连接断开自动重连机制

生成完整的 ViewModel + 对应的 XAML DataTemplate 示例。
参考协议:@ModbusHelper.cs

3. 复杂表单 + 验证 + 保存

创建一个 DeviceConfigViewModel(WPF MVVM),使用 CommunityToolkit.Mvvm + FluentValidation。

需求:
- 可绑定属性:DeviceName、IpAddress、Port、BaudRate、Timeout、IsEnabled(bool)
- 使用 [ObservableProperty] + partial 属性
- 实时输入验证(IP 格式、端口范围 1-65535 等)
- SaveCommand:验证通过后调用服务保存,失败显示错误信息
- LoadCommand:从配置文件或设备读取当前配置
- 支持 Dirty 状态(HasChanges),关闭窗口时提示保存

请生成完整 ViewModel,并给出 XAML 中 TextBox + Validation.ErrorTemplate 的绑定方式。

4. 主界面 Shell + 导航 ViewModel

生成一个 MainShellViewModel(WPF Prism 或 CommunityToolkit),实现左侧菜单导航功能。

要求:
- 使用 ObservableCollection<MenuItem> 管理菜单
- CurrentView 属性(object 类型,用于 ContentControl 绑定)
- NavigateCommand(string viewName)
- 支持页面缓存(Dictionary<string, ViewModel>)
- 菜单包括:首页监控、参数设置、日志查询、关于
- 响应式布局支持(侧边栏折叠)

严格使用 MVVM,不在 ViewModel 中出现任何 View 相关代码。

5. 高级综合 Prompt(推荐用于 Trae / 通义灵码 Builder 模式)

请为 C# WPF 上位机项目创建一个完整的 [模块名称] 功能模块,严格遵循 MVVM 最佳实践。

整体要求:
- 使用 CommunityToolkit.Mvvm 最新版本
- 采用分层架构:ViewModel 只处理逻辑,Service 处理业务和硬件通信
- 所有命令异步化
- 完善的 Loading / Error / Success 状态管理
- 良好的可测试性(构造函数注入)

具体功能:
[在这里详细描述你的业务需求,例如:
1. 设备连接管理(串口/网口/OPC UA)
2. 实时曲线显示(LiveCharts)
3. 参数读写表格(DataGrid + 编辑)
4. 日志记录与导出
]

请按以下步骤输出:
1. 先输出 ViewModel 完整代码
2. 再输出对应的 XAML 关键绑定部分
3. 最后给出 Service 接口定义和实现建议
参考项目架构:@BaseViewModel.cs @ICommunicationService.cs

6. 重构遗留代码 Prompt(WinForms → WPF MVVM)

帮我将以下 WinForms 代码重构为标准的 WPF MVVM 模式。

原代码:@OldForm.cs

要求:
- 拆分为 ViewModel + View(XAML)
- 使用 CommunityToolkit.Mvvm
- 保留原有业务逻辑
- 提升为响应式编程风格
- 优化 UI 更新性能

使用技巧(大幅提升效果)

  1. 始终引用上下文:使用 @文件名@文件夹 让 AI 理解你的项目规范。

  2. 先小后大:先让 AI 生成单个 ViewModel,测试通过后再做整合。

  3. 规则文件(强烈推荐):

    • 项目根目录建 .cursorrules 或 Trae rules:
      必须使用 CommunityToolkit.Mvvm
      所有属性用 [ObservableProperty]
      命令用 [RelayCommand]
      异步方法必须处理异常并更新 IsBusy
      禁止在 ViewModel 中使用 MessageBox,直接用 Messenger 发送
      
  4. 多轮迭代:生成后如果不满意,复制错误或修改意见继续对话。


想要我立刻生成哪个具体模块的完整 Prompt?

例如:

  • 串口实时监控面板
  • 参数配置 + 保存
  • 设备管理列表(增删改查)
  • 报警记录 + DataGrid
  • OPC UA 客户端集成

更多推荐