using System; using System.Collections.ObjectModel; using System.Diagnostics; using System.Threading.Tasks; using Xamarin.Forms; using App1.Models; using App1.Views; namespace App1.ViewModels { public class ItemsViewModel : BaseViewModel { public ObservableCollection Items { get; set; } public Command LoadItemsCommand { get; set; } public ItemsViewModel() { Title = "High Scores"; Items = new ObservableCollection(); LoadItemsCommand = new Command(async () => await ExecuteLoadItemsCommand()); MessagingCenter.Subscribe(this, "AddItem", async (obj, item) => { var newItem = item as Item; Items.Add(newItem); await DataStore.AddItemAsync(newItem); }); } async Task ExecuteLoadItemsCommand() { IsBusy = true; try { Items.Clear(); var items = await DataStore.GetItemsAsync(true); foreach (var item in items) { Items.Add(item); } } catch (Exception ex) { Debug.WriteLine(ex); } finally { IsBusy = false; } } } }