Book Image

Xamarin Blueprints

By : Michael Williams
Book Image

Xamarin Blueprints

By: Michael Williams

Overview of this book

Do you want to create powerful, efficient, and independent apps from scratch that will leverage the Xamarin framework and code with C#? Well, look no further; you’ve come to the right place! This is a learn-as-you-build practical guide to building eight full-fledged applications using Xamarin.Forms, Xamarin Android, and Xamarin iOS. Each chapter includes a project, takes you through the process of building applications (such as a gallery Application, a text-to-speech service app, a GPS locator app, and a stock market app), and will show you how to deploy the application’s source code to a Google Cloud Source Repository. Other practical projects include a chat and a media-editing app, as well as other examples fit to adorn any developer’s utility belt. In the course of building applications, this book will teach you how to design and prototype professional-grade applications implementing performance and security considerations.
Table of Contents (14 chapters)
Xamarin Blueprints
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface

Handling alerts in view-models


Handling alerts via view-models is important as we handle many errors via try/catch statements. To respond to these errors, we want to display an alert dialog showing the error message to the user. There are two ways we are going to do this:

  • Using an EventHandler for pushing events to the current page so that we can call the DisplayAlert function with different messages

  • Using an interface for dependency injection where we will implement native alerts

Our first step is to add the ViewModelBase class; this is where alerts will be fired from.

Create a new folder in the FileStorage.Portable project called ViewModels, add a new file called ViewModelBase.cs, and implement the following:

public class ViewModelBase : INotifyPropertyChanged 
    {
        #region Public Events
          public event PropertyChangedEventHandler PropertyChanged;
          public event EventHandler<string> Alert;
        #endregion
        #region Private Properties
          private...