void RegisterEvents() { ViewModel.PropertyChanged += (object s, PropertyChangedEventArgs e) => { switch (e.PropertyName) { case "JourneysList": if (journey != null) { Device.BeginInvokeOnMainThread(() => { journey.ItemsSource = null; journey.ItemsSource = ViewModel.GetLatestJourney; }); } break; case "DashboardModel": if (scrollLayout != null) { if (ViewModel.DriverScores != null) { Device.BeginInvokeOnMainThread(() => { if (!Calendar) { scrollLayout.Children.Insert(1, ScoreDialView.ScoreDial(ViewModel.DriverScores.Score, ViewModel.SpinnerAngle)); scrollLayout.Children.Insert(3, MileageCell.MileageView(ViewModel.GetMileage)); scrollLayout.Children.Add(journey); //scrollLayout.Children.Add(NoticeOdometer.NoticeOdometerCells(ViewModel.Notifications.Count, ViewModel.OdoFormattedValue, ViewModel.OdoVehicleReg)); } else { scrollLayout.Children.RemoveAt(1); scrollLayout.Children.RemoveAt(3); scrollLayout.Children.RemoveAt(4); //scrollLayout.Children.RemoveAt(5); scrollLayout.Children.Insert(1, ScoreDialView.ScoreDial(ViewModel.DriverScores.Score, ViewModel.SpinnerAngle)); scrollLayout.Children.Insert(3, MileageCell.MileageView(ViewModel.GetMileage)); scrollLayout.Children.Add(journey); //scrollLayout.Children.Add(NoticeOdometer.NoticeOdometerCells(ViewModel.Notifications.Count, ViewModel.OdoFormattedValue, ViewModel.OdoVehicleReg)); } }); } } break; case "GroupScores": if (firstRun) { ViewModel.CurrentCarousel = 0; firstRun = !firstRun; } break; case "CurrentGroupScore": if (scrollLayout != null) { if (ViewModel.GroupScores != null) { Device.BeginInvokeOnMainThread(() => { if (Calendar) { scrollLayout.Children.Insert(8, Carousel.GroupScores(ViewModel)); } else { //scrollLayout.Children.RemoveAt(8); if (scrollLayout.Children.Count < 9) { scrollLayout.Children.Insert(8, Carousel.GroupScores(ViewModel)); } else { scrollLayout.Children[8].Focus(); } Calendar = false; } scrollLayout.Children.Add(NoticeOdometer.NoticeOdometerCells(ViewModel.Notifications.Count, ViewModel.OdoFormattedValue, ViewModel.OdoVehicleReg)); }); } } break; } }; }