Avalonia Zafiro Models
/SKILLBest practices for creating ViewModels and wizards for Avalonia using Zafiro and ReactiveUI.
--- name: avalonia-viewmodels-zafiro description: "Optimal ViewModel and Wizard creation patterns for Avalonia using Zafiro and ReactiveUI." risk: none source: community date_added: "2026-02-27" --- # Avalonia ViewModels with Zafiro This skill provides a set of best practices and patterns for creating ViewModels, Wizards, and managing navigation in Avalonia applications, leveraging the power of ReactiveUI and the Zafiro toolkit. ## Core Principles 1. Functional-Reactive Approach: Use ReactiveUI (ReactiveObject, WhenAnyValue, etc.) to handle state and logic. 2. Enhanced Commands: Utilize IEnhancedCommand for better command management, including progress reporting and name/text attributes. 3. Wizard Pattern: Implement complex flows using SlimWizard and WizardBuilder for a declarative and maintainable approach. 4. Automatic Section Discovery: Use the [Section] attribute to register and discover UI sections automatically. 5. Clean Composition: map ViewModels to Views using DataTypeViewLocator and manage dependencies in the CompositionRoot. ## Guides - [ViewModels & Commands](viewmodels.md): Creating robust ViewModels and handling commands. - [Wizards & Flows](wizards.md): Building multi-step wizards with SlimWizard. - [Navigation & Sections](navigation_sections.md): Managing navigation and section-based UIs. - [Composition & Mapping](composition.md): Best practices for View-ViewModel wiring and DI. ## Example Reference For real-world implementations, refer to the Angor project: - CreateProjectFlowV2.cs: Excellent example of complex Wizard building. - HomeViewModel.cs: Simple section ViewModel using functional-reactive commands. ## When to Use This skill is applicable to execute the workflow or actions described in the overview. ## Limitations - Use this skill only when the task clearly matches the scope described above. - Do not treat the output as a substitute for environment-specific validation, testing, or expert review. - Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.