internal async Task ExecuteLoadItemsCommand() { IsBusy = true; try { Items.Clear(); var items = await DataStore.GetItemsAsync(true); MyTaskEx itemEx; foreach (var item in items) { itemEx = new MyTaskEx(item); Items.Add(itemEx); } } catch (Exception ex) { Debug.WriteLine(ex); } finally { IsBusy = false; } }
public MyTaskDetailPage() { InitializeComponent(); var item = new MyTaskEx { Name = "Item 1", Description = "This is an item description." }; BindingContext = viewModel = new MyTaskDetailViewModel(ref item); }
public MyTasksViewModel(MyTasksPage page) { _page = page; Title = "Browse"; Items = new ObservableCollection <MyTaskEx>(); LoadItemsCommand = new Command(async() => await ExecuteLoadItemsCommand()); AddItemCommand = new Command(async() => await ExecuteAddItemCommand()); ItemSelectCommand = new Command <MyTaskEx>(async(item) => await ExecuteItemSelectCommand(item)); MessagingCenter.Subscribe <NewItemPage, MyTask>(this, "AddItem", async(obj, item) => { var newItem = item as MyTask; var newItemEx = new MyTaskEx(newItem); Items.Add(newItemEx); await DataStore.AddItemAsync(newItem); }); }
async Task ExecuteItemSelectCommand(MyTaskEx item) { await _page.Navigation.PushAsync(new MyTaskDetailPage(new MyTaskDetailViewModel(ref item))); }