[ PROMPT_NODE_23722 ]
avalonia-viewmodels-zafiro
[ SKILL_DOCUMENTATION ]
# 使用 Zafiro 的 Avalonia ViewModels
本技能提供了一套在 Avalonia 应用程序中创建 ViewModel、向导和管理导航的最佳实践与模式,充分利用了 **ReactiveUI** 和 **Zafiro** 工具包的强大功能。
## 核心原则
1. **函数式响应式方法**:使用 ReactiveUI(`ReactiveObject`, `WhenAnyValue` 等)来处理状态和逻辑。
2. **增强命令**:利用 `IEnhancedCommand` 进行更好的命令管理,包括进度报告和名称/文本属性。
3. **向导模式**:使用 `SlimWizard` 和 `WizardBuilder` 实现复杂流程,以获得声明式且易于维护的方法。
4. **自动部分发现**:使用 `[Section]` 特性自动注册和发现 UI 部分。
5. **清晰的组合**:使用 `DataTypeViewLocator` 将 ViewModel 映射到 View,并在 `CompositionRoot` 中管理依赖项。
## 指南
- [ViewModels & Commands](viewmodels.md):创建健壮的 ViewModel 并处理命令。
- [Wizards & Flows](wizards.md):使用 `SlimWizard` 构建多步向导。
- [Navigation & Sections](navigation_sections.md):管理导航和基于部分的 UI。
- [Composition & Mapping](composition.md):View-ViewModel 绑定和依赖注入 (DI) 的最佳实践。
## 示例参考
有关实际实现,请参考 **Angor** 项目:
- `CreateProjectFlowV2.cs`:复杂向导构建的优秀示例。
- `HomeViewModel.cs`:使用函数式响应命令的简单部分 ViewModel。