using System; using System.Collections.ObjectModel; using System.Diagnostics; using System.Threading.Tasks; namespace ezxamairn { public class ItemsViewModel : BaseViewModel { public ObservableCollection Items { get; set; } public Command LoadItemsCommand { get; set; } public Command AddItemCommand { get; set; } public ItemsViewModel() { Title = "Browse"; Items = new ObservableCollection(); LoadItemsCommand = new Command(async () => await ExecuteLoadItemsCommand()); AddItemCommand = new Command(async (Item item) => await AddItem(item)); } async Task ExecuteLoadItemsCommand() { if (IsBusy) return; 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; } } async Task AddItem(Item item) { Items.Add(item); await DataStore.AddItemAsync(item); } } }