FunctionZero
  • Libraries
    • Maui.MvvmZero
      • Overview
      • Quickstart
      • Walkthrough
        • Create your application
        • Create your ContentPages
        • Create your ViewModels
        • Register your new content
        • Launching our app!
        • Adding Navigation
        • Summary
      • Recommended naming conventions
      • Configuring your root Page
        • Root ContentPage
        • Root NavigationPage
        • Root TabbedPage
        • Root FlyoutPage
      • A note on Singleton vs Transient
      • Recommended base classes for PageViewModels and ViewModels
    • Maui.Controls
      • ExpanderZero
      • FocusScrollZero
      • LabelZero
      • ListViewZero
      • MaskZero
      • MultiViewZero
      • TreeViewZero
    • CommandZero
    • Maui.BindZero
      • Quickstart
      • z:Bind
      • Examples
      • The Great Escape
      • Casting
      • Short Circuit
      • Errors
      • Aliases
      • Value types and Reference types
      • z:Function
      • z:TapTrigger
      • z:EdgeTrigger
      • z:Latch
      • Advanced Usage - Functions, aliases and operator-overloads
    • AnimationZero
    • LocalisationZero
Powered by GitBook
On this page
  1. Libraries
  2. Maui.MvvmZero

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.

PreviousMaui.MvvmZeroNextQuickstart

Last updated 1 year ago