Ejemplo n.º 1
0
        public MainPageViewModel(IViewServices viewSvc)
        {
            dataStore = Services.MockDataStore.Instance;

            SpellLists = new ObservableCollection <SpellListViewModel>();

            ViewSpellListCommand = new Command(vm =>
                                               viewSvc.Navigation.PushAsync(new Views.ViewSpellListPage(((SpellListViewModel)vm).SpellList)));

            AddNewSpellListCommand = new Command(() =>
                                                 viewSvc.Navigation.PushAsync(new Views.EditSpellListPage(new Model.SpellList())));

            DeleteSpellListCommand = new Command(vm =>
            {
                viewSvc.DisplayAlert("Delete Spell List",
                                     $"Are you sure you want to delete \"{((SpellListViewModel)vm).Title}\"?", "Yes", "No")
                .ContinueWith(_ =>
                {
                    if (_.Result)
                    {
                        dataStore.Delete(((SpellListViewModel)vm).SpellList);
                        SpellLists.Remove(((SpellListViewModel)vm));
                    }
                });
            });

            CloneSpellListCommand = new Command(vm =>
                                                viewSvc.Navigation.PushAsync(new Views.EditSpellListPage(((SpellListViewModel)vm).SpellList.Clone())));
        }
Ejemplo n.º 2
0
        public EditSpellListPageViewModel(IViewServices viewSvc, ISpellList spellList)
            : base(spellList)
        {
            _title = spellList.Title;
            _class = spellList.Class;
            _level = spellList.Level;

            PickSpellListCommand = new Command(() =>
            {
                spellList.Title = _title;
                spellList.Class = _class;
                spellList.Level = _level;
                Services.MockDataStore.Instance.Save(spellList);
                viewSvc.Navigation.PushAsync(new Views.PickSpellListPage(spellList));
            });

            DeleteSpellListCommand = new Command(async() =>
            {
                if (await viewSvc.DisplayAlert("Delete Spell List",
                                               $"Are you sure you want to delete \"{Title}\"?", "Yes", "No"))
                {
                    Services.MockDataStore.Instance.Delete(SpellList);
                    await viewSvc.Navigation.PopToRootAsync();
                }
            });

            CloneSpellListCommand = new Command(() =>
                                                viewSvc.Navigation.PushAsync(new Views.EditSpellListPage(SpellList.Clone())));
        }