名称: avalonia-viewmodels-zafiro 描述: 使用 Zafiro 和 ReactiveUI 为 Avalonia 创建最优的 ViewModel 和 Wizard 模式。
Avalonia ViewModels 与 Zafiro
此技能提供了一套在 Avalonia 应用程序中创建 ViewModel、Wizard 和管理导航的最佳实践和模式,利用 ReactiveUI 和 Zafiro 工具包的力量。
核心原则
- 功能反应式方法: 使用 ReactiveUI(
ReactiveObject、WhenAnyValue等)来处理状态和逻辑。 - 增强命令: 利用
IEnhancedCommand进行更好的命令管理,包括进度报告和名称/文本属性。 - Wizard 模式: 使用
SlimWizard和WizardBuilder实现复杂流程,采用声明式和可维护的方法。 - 自动部分发现: 使用
[Section]属性自动注册和发现 UI 部分。 - 清洁组合: 使用
DataTypeViewLocator将 ViewModel 映射到 View,并在CompositionRoot中管理依赖项。
指南
- ViewModels 与命令: 创建健壮的 ViewModel 和处理命令。
- Wizards 与流程: 使用
SlimWizard构建多步骤 Wizard。 - 导航与部分: 管理导航和基于部分的 UI。
- 组合与映射: View-ViewModel 连接和依赖注入的最佳实践。
示例参考
对于实际实现,参考 Angor 项目:
CreateProjectFlowV2.cs: 复杂 Wizard 构建的极佳示例。HomeViewModel.cs: 使用功能反应式命令的简单部分 ViewModel。