66 lines
1.7 KiB
C#
66 lines
1.7 KiB
C#
![]() |
using MyMobileApp.Models;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Text;
|
|||
|
using System.Windows.Input;
|
|||
|
using Xamarin.Forms;
|
|||
|
|
|||
|
namespace MyMobileApp.ViewModels
|
|||
|
{
|
|||
|
public class NewItemViewModel : BaseViewModel
|
|||
|
{
|
|||
|
private string text;
|
|||
|
private string description;
|
|||
|
|
|||
|
public NewItemViewModel()
|
|||
|
{
|
|||
|
SaveCommand = new Command(OnSave, ValidateSave);
|
|||
|
CancelCommand = new Command(OnCancel);
|
|||
|
this.PropertyChanged +=
|
|||
|
(_, __) => SaveCommand.ChangeCanExecute();
|
|||
|
}
|
|||
|
|
|||
|
private bool ValidateSave()
|
|||
|
{
|
|||
|
return !String.IsNullOrWhiteSpace(text)
|
|||
|
&& !String.IsNullOrWhiteSpace(description);
|
|||
|
}
|
|||
|
|
|||
|
public string Text
|
|||
|
{
|
|||
|
get => text;
|
|||
|
set => SetProperty(ref text, value);
|
|||
|
}
|
|||
|
|
|||
|
public string Description
|
|||
|
{
|
|||
|
get => description;
|
|||
|
set => SetProperty(ref description, value);
|
|||
|
}
|
|||
|
|
|||
|
public Command SaveCommand { get; }
|
|||
|
public Command CancelCommand { get; }
|
|||
|
|
|||
|
private async void OnCancel()
|
|||
|
{
|
|||
|
// This will pop the current page off the navigation stack
|
|||
|
await Shell.Current.GoToAsync("..");
|
|||
|
}
|
|||
|
|
|||
|
private async void OnSave()
|
|||
|
{
|
|||
|
Item newItem = new Item()
|
|||
|
{
|
|||
|
Id = Guid.NewGuid().ToString(),
|
|||
|
Text = Text,
|
|||
|
Description = Description
|
|||
|
};
|
|||
|
|
|||
|
await DataStore.AddItemAsync(newItem);
|
|||
|
|
|||
|
// This will pop the current page off the navigation stack
|
|||
|
await Shell.Current.GoToAsync("..");
|
|||
|
}
|
|||
|
}
|
|||
|
}
|