添加 MX-PD-盘古 项目文件

将 MX-PD-盘古 - new 目录下的所有文件添加到主仓库
This commit is contained in:
Shi.Ji
2026-05-18 11:43:09 +08:00
parent 03632a379d
commit e31d3560bb
739 changed files with 99783 additions and 0 deletions

View File

@@ -0,0 +1,72 @@
---
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.
## <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ WPF <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9> Stylet<65><74>MVVM <20><><EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ Stylet <20><>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>
## 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
## <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
ViewModel <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- ViewModel <20>̳<EFBFBD> `Screen` <20><> `PropertyChangedBase`
- View <20><> ViewModel <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
- <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Stylet <20><>ͻ<EFBFBD><CDBB> 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
## <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>ÿɰ<C3BF><C9B0><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>ͳһ<CDB3><D2BB><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD>״̬
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>״̬<D7B4>򣬲<EFBFBD>Ҫ<EFBFBD><D2AA>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ViewModel <20><>
- <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬Ҫ<CCAC><D2AA>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>
## 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
## <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
IoC <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- IoC ע<><D7A2>ͳһ<CDB3><D2BB> `StartBootstrapper.ConfigureIoC()` <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8> `[Singleton]` <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
## 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`
## <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
XAML <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- <20><>Ҫ<EFBFBD><D2AA>д `InitializeComponent`
- <20><>Ҫͨ<D2AA><CDA8> code-behind <20>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD>ƹ<EFBFBD><C6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- ҳ<><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧͨ<D3A6><CDA8> csproj <20><> WPF <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
- ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> `Converter/` <20>£<EFBFBD><C2A3><EFBFBD>ʹ<EFBFBD><CAB9> `XxxConverter` <20><><EFBFBD><EFBFBD>
## 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.
## <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD>ƣ<EFBFBD>
- ƽ̨<C6BD><CCA8><EFBFBD>԰<EFBFBD><D4B0><EFBFBD>`MaxwellFramework_{lang}.xaml`
- <20><>Ŀ<EFBFBD><C4BF><EFBFBD>԰<EFBFBD><D4B0><EFBFBD>`MXJM_{lang}.xaml`
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> UI <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ҫ<EFBFBD>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB>ơ<EFBFBD>