in ContosoApp/Views/OrderDetailPage.xaml.cs [96:135]
protected async override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
if (ViewModel.IsModified)
{
var saveDialog = new SaveChangesDialog()
{
Title = $"Save changes to Invoice # {ViewModel.InvoiceNumber.ToString()}?",
Content = $"Invoice # {ViewModel.InvoiceNumber.ToString()} " +
"has unsaved changes that will be lost. Do you want to save your changes?"
};
await saveDialog.ShowAsync();
SaveChangesDialogResult result = saveDialog.Result;
switch (result)
{
case SaveChangesDialogResult.Save:
await ViewModel.SaveOrderAsync();
break;
case SaveChangesDialogResult.DontSave:
break;
case SaveChangesDialogResult.Cancel:
if (e.NavigationMode == NavigationMode.Back)
{
Frame.GoForward();
}
else
{
Frame.GoBack();
}
e.Cancel = true;
// This flag gets cleared on navigation, so restore it.
ViewModel.IsModified = true;
break;
}
}
base.OnNavigatingFrom(e);
}