Xamarin Forms - MVVM

This course looks at the Xamarin Forms implementation of the Model-View-ViewModel architecture, paying special attention to data and command binding. We see how to bind view models and nested models to views, and explore notification mechanisms built into the Xamarin Forms core for bi-directional data and view updating. The course also looks at XAML markup extensions and value converters for displaying images within a Xamarin Forms app.

Learning Objectives

Understand the model and view model aspects of MVVM and create an application using the Flyout app template

Intended Audience

This course is designed for anyone interested in enhancing their knowledge of Xamarin, with a focus on MVVM.


To get the most from this course, you should have a basic understanding of interfaces and reflection in the context of C# and .NET.

Source Code


Hi, and welcome to this Xamarin Forms - MVVM course. If you don't already know, MVVM stands for Model-View-ViewModel and is the default application architecture template when creating a Xamarin Forms app in Visual Studio. I briefly touched on this fact in the Building a Xamarin Forms UI – Layout Containers course when looking at the application's folder structure. The Building a Xamarin Forms UI series of courses concentrated on the view aspect of Model-View-ViewModel, also known as the presentation layer. We will take our user interface learnings from the previous courses as a starting point and create an application to cover the model and view model aspects of MVVM.

It goes without saying, but I will anyway, that if you are relatively new to programming, you should look at the Building a Xamarin Forms UI courses as a primer for this course. Having said that, and in the spirit of good design, particularly "separation of concerns," this course does stand on its own.

To get the most from this course you should know what interfaces and reflection are in the context of C# and .Net. You don't need to be an expert, just have a general understanding of these concepts.

If you want to follow along with me in the demos, you can download the MVVMFlyout solution from Github at

My name is Hallam Webber, and I'll be your instructor for this course. When I created this course, all information was current. If you have any feedback, positive or negative, or if you notice anything that needs to be updated or corrected, please reach out to us at

About the Author
Learning Paths

Hallam is a software architect with over 20 years experience across a wide range of industries. He began his software career as a  Delphi/Interbase disciple but changed his allegiance to Microsoft with its deep and broad ecosystem. While Hallam has designed and crafted custom software utilizing web, mobile and desktop technologies, good quality reliable data is the key to a successful solution. The challenge of quickly turning data into useful information for digestion by humans and machines has led Hallam to specialize in database design and process automation. Showing customers how leverage new technology to change and improve their business processes is one of the key drivers keeping Hallam coming back to the keyboard. 

Covered Topics