Overview

A high-level overview of Maui.MvvmZero

MvvmZero is intended to be used for ViewModel based navigation. Views (Pages) are fully decoupled and can even be swapped at runtime, e.g. between a Portrait and Landscape View.

Can be used seamlessly with additional libraries such as FunctionZero.CommandZero (never write an 'IsBusy' flag again), FunctionZero.zBind (never write a ValueConverter again), FunctionZero.Maui.Controls and AnimationZero.

  • Naming conventions are encouraged but not enforced, so you can use your own, or none at all.

  • Useful base classes are provided for your ViewModels, but they are not required or enforced.

  • ViewModels can be associated with different Views for Portrait, Landscape, Phone, Tablet, Desktop, as well as customised for the current user, e.g. Administrator, Field worker, sales etc.

  • Navigation by ViewModel is recommended and has first-class support.

  • Page navigation is also supported, as is mix and match MAUI navigation and MvvmZero page or ViewModel navigation without things breaking!

  • Special support for Flyout and derivatives.

  • Special support for IMultiPage (e.g. TabbedPage) and derivatives.

  • ViewModel initialisation is typesafe, optional, and asynchronous if you want it to be.

Last updated