avalonia-viewmodels-zafiro

Frontend & Expérience UX

Optimal ViewModel and Wizard creation patterns for Avalonia using Zafiro and ReactiveUI.

Documentation

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.
Utiliser l'Agent avalonia-viewmodels-zafiro - Outil & Compétence IA | Skills Catalogue | Skills Catalogue