public ListViewModel()
 {
     _db         = App.Db;
     Title       = "List";
     LoadCommand = new Command(
         async() => {
         IsBusy   = true;
         Students = new ObservableCollection <Student>(await _db.GetItemsAsync());
         IsBusy   = false;
     }
         );
     LoadClassesCommand = new Command(
         async() => {
         IsBusy     = true;
         Classrooms = new ObservableCollection <Classroom>(await _db.GetClassroomsAsync());
         IsBusy     = false;
     }
         );
     MessagingCenter.Subscribe <NewItemPage>(this, "UpdateStudents", (sender) =>
     {
         LoadCommand.Execute(null);
     });
     MessagingCenter.Subscribe <ItemDetailPage>(this, "UpdateStudents", (sender) =>
     {
         LoadCommand.Execute(null);
     });
     MessagingCenter.Subscribe <EditItemPage>(this, "UpdateStudents", (sender) =>
     {
         LoadCommand.Execute(null);
     });
     MessagingCenter.Subscribe <NewItemPage, Student>(this, "AddStudent", async(sender, student) =>
     {
         if (!await _db.AddItemAsync(student))
         {
             MessagingCenter.Send(this, "ShowAlert", "There was an error.");
         }
     });
     MessagingCenter.Subscribe <EditItemPage, Student>(this, "EditStudent", async(sender, student) =>
     {
         if (!await _db.UpdateItemAsync(student))
         {
             MessagingCenter.Send(this, "ShowAlert", "There was an error.");
         }
     });
     MessagingCenter.Subscribe <ItemDetailPage, int>(this, "DeleteStudent", async(sender, id) =>
     {
         if (!await _db.DeleteItemAsync(id))
         {
             MessagingCenter.Send(this, "ShowAlert", "There was an error.");
         }
     });
 }