| 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
- Functional-Reactive Approach: Use ReactiveUI (
ReactiveObject, WhenAnyValue, etc.) to handle state and logic.
- Enhanced Commands: Utilize
IEnhancedCommand for better command management, including progress reporting and name/text attributes.
- Wizard Pattern: Implement complex flows using
SlimWizard and WizardBuilder for a declarative and maintainable approach.
- Automatic Section Discovery: Use the
[Section] attribute to register and discover UI sections automatically.
- Clean Composition: map ViewModels to Views using
DataTypeViewLocator and manage dependencies in the CompositionRoot.
Guides
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.