Files
test_demo/MX-PD-盘古 - new/PanGu.DieBonderApp/.github/instructions/wpf-mvvm.instructions.md
Shi.Ji e31d3560bb 添加 MX-PD-盘古 项目文件
将 MX-PD-盘古 - new 目录下的所有文件添加到主仓库
2026-05-18 11:43:09 +08:00

2.4 KiB
Raw Blame History

applyTo
applyTo
**/*ViewModel.cs,**/*.xaml,MainShell/Converter/**/*.cs,MainShell/Home/**/*.cs,MainShell/ParaSetting/**/*.cs,MainShell/DeviceMaintance/**/*.cs,MainShell/PageCalib/**/*.cs,MainShell/Manual/**/*.cs

WPF and MVVM Instructions

Framework

This repository uses WPF with Stylet.

中文说明

本项目 WPF 框架使用 StyletMVVM 相关代码必须遵循 Stylet 的约定。

ViewModel Rules

  • ViewModel classes should inherit from Screen or PropertyChangedBase
  • Follow Stylet naming convention:
    • XxxView ? XxxViewModel
  • Do not introduce patterns that conflict with Stylet conventions

中文说明

ViewModel 规则:

  • ViewModel 继承 ScreenPropertyChangedBase
  • View 和 ViewModel 按命名约定自动绑定
  • 不要引入与 Stylet 冲突的 MVVM 模式

State Management

  • Prefer bindable state objects to hold UI state
  • Do not scatter many unrelated primitive bindable properties if a cohesive state model is more suitable
  • Distinguish device input state and output state clearly

中文说明

状态管理建议:

  • 优先使用可绑定状态对象统一承载界面状态
  • 如果多个属性本质上属于一个状态域,不要分散定义在 ViewModel 中
  • 输入状态和输出状态要明确分离

IoC Rules

  • IoC registrations belong in StartBootstrapper.ConfigureIoC()
  • Singleton services should use [Singleton] or be registered as singleton in IoC
  • New services must be registered consistently with existing project patterns

中文说明

IoC 规则:

  • IoC 注册统一在 StartBootstrapper.ConfigureIoC() 中完成
  • 单例服务通过 [Singleton] 或容器单例注册
  • 新增服务必须遵循现有注册风格

XAML Rules

  • Do not manually implement InitializeComponent
  • Do not work around WPF compilation issues by writing manual code-behind loaders
  • Fix page compilation through project file and proper WPF item setup
  • Value converters should be placed in Converter/ and named XxxConverter

中文说明

XAML 规则:

  • 不要手写 InitializeComponent
  • 不要通过 code-behind 手工加载页面绕过编译问题
  • 页面编译问题应通过 csproj 或 WPF 配置修复
  • 转换器放在 Converter/ 下,并使用 XxxConverter 命名

Language Resource Rules

Project language resources are loaded from:

  • Language/MaxwellFramework_{lang}.xaml
  • Language/MXJM_{lang}.xaml

Keep generated UI code compatible with the existing localization mechanism.

中文说明

多语言资源加载遵循现有机制:

  • 平台语言包:MaxwellFramework_{lang}.xaml
  • 项目语言包:MXJM_{lang}.xaml

生成 UI 代码时不要破坏现有多语言机制。