| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- using System;
- using Xamarin.Forms;
- namespace DevDaysTasks
- {
- public partial class TodoList : ContentPage
- {
- TodoListViewModel viewModel;
- public TodoList()
- {
- InitializeComponent();
- BindingContext = viewModel = new TodoListViewModel();
- }
- protected override void OnAppearing()
- {
- base.OnAppearing();
- viewModel.RefreshCommand.Execute(false);
- }
- // Event handlers
- public async void OnSelected(object sender, SelectedItemChangedEventArgs e)
- {
- var list = (ListView)sender;
- var todo = e.SelectedItem as TodoItem;
- if (Device.OS != TargetPlatform.iOS && todo != null)
- {
- // Not iOS - the swipe-to-delete is discoverable there
- if (Device.OS == TargetPlatform.Android)
- {
- await DisplayAlert(todo.Name, "Press-and-hold to complete task " + todo.Name, "Got it!");
- }
- else
- {
- // Windows, not all platforms support the Context Actions yet
- if (await DisplayAlert("Mark completed?", "Do you wish to complete " + todo.Name + "?", "Complete", "Cancel"))
- {
- viewModel.CompleteCommand.Execute(todo);
- }
- }
- }
- // prevents background getting highlighted
- list.SelectedItem = null;
- }
- // http://developer.xamarin.com/guides/cross-platform/xamarin-forms/working-with/listview/#context
- public void OnComplete(object sender, EventArgs e)
- {
- var mi = ((MenuItem)sender);
- var todo = mi.CommandParameter as TodoItem;
- viewModel.CompleteCommand.Execute(todo);
- }
- }
- }
|