public RemindersPageViewModel() { Title = "Reminders"; notificationManager = DependencyService.Get <INotificationManager>(); Reminder.LoadAll(); Reminders = new ObservableCollection <Reminder>(Reminder.AllReminders); Edit = new Command <Reminder>(async(Reminder r) => { await Device.InvokeOnMainThreadAsync(async() => { var vm = new ReminderEditPageViewModel() { Reminder = r }; var page = new ReminderEditPage() { BindingContext = vm }; await Shell.Current.Navigation.PushAsync(page); }); }); Delete = new Command <Reminder>(async(Reminder r) => { try { Reminders.Remove(r); Reminder.AllReminders.Remove(r); /* * See QuotePageViewModel for info */ Reminders.Clear(); foreach (var tmp in Reminder.AllReminders) { Reminders.Add(tmp); } Reminder.SaveAll(); } catch (Exception e) { await Device.InvokeOnMainThreadAsync(async() => { await Shell.Current.DisplayAlert("Exception", e.ToString(), "ok"); }); } }); CheckAll = new Command(() => { Reminder.CheckReminders(notificationManager); }); }
public ItemDetailsPageViewModel() { Title = "Details"; //Item = new Item() //{ // Name = "Item", // OriginalPrice = 1000.00f, // Price = 900.50f, // Location = "Location 000", // SKU = "123456", // Stock = "6 in stock", // Plans = new List<Plan>() { // new Plan() // { // Name = "PLAN 1", // Price = 100f // }, // } //}; BackPicture = new Command(() => { if (PictureIndex > 0) { PictureIndex--; OnPropertyChanged(nameof(ActivePicture)); } else if (Item != null && Item?.PictureUrls?.Count > 1) { PictureIndex = Item.PictureUrls.Count - 1; OnPropertyChanged(nameof(ActivePicture)); } }); ForwardPicture = new Command(() => { if (PictureIndex < Item?.PictureUrls?.Count - 1) { PictureIndex++; OnPropertyChanged(nameof(ActivePicture)); } else if (Item != null && Item?.PictureUrls?.Count > 1) { PictureIndex = 0; OnPropertyChanged(nameof(ActivePicture)); } }); GoToWebpage = new Command(async() => { await Xamarin.Essentials.Browser.OpenAsync($"https://microcenter.com{Item.URL}", Xamarin.Essentials.BrowserLaunchMode.SystemPreferred); }); AddReminder = new Command(async() => { if (Item != null) { await Device.InvokeOnMainThreadAsync(async() => { var vm = new ReminderEditPageViewModel(); vm.Reminder = new Reminder(Item); vm.NewItem = true; await Shell.Current.Navigation.PushAsync(new ReminderEditPage() { BindingContext = vm }); }); } }); }