Most Avalonia documentation assumes you’re using ReactiveUI, which I personally find difficult to reason about at present. This led me to choose MVVM Toolkit instead, but this choice came with a significant downside: zero support for routing/navigation.
From my research on GitHub issues and Reddit threads, the MVVM Toolkit maintainers don’t seem interested in adding this functionality which I consider a huge missed opportunity. I will say plainly that it is ridiculous to not support this as it is a standard and expected feature. The previous MVVM libraries it is supposed to replace did support this!
So I faced a difficult choice:
- Build my own routing/navigation system while using the more intuitive MVVM Toolkit
- Use ReactiveUI with its built-in navigation but accept its higher cognitive load
Neither option felt ideal for my development experience.