private async Task <bool> CheckUnsavedChangesAndContinue() { if (unsavedChanges) { UnsavedChanges unsavedChangesDialog = new UnsavedChanges(); await unsavedChangesDialog.ShowAsync(); if (unsavedChangesDialog.DiscardChanges) { return(true); } else { return(false); } } else { return(true); } }
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { // Move focus to force binding update. cancelButton.Focus(); if (timeSheetDataSet == null || ! timeSheetDataSet.HasChanges()) return; var dialog = new UnsavedChanges(); dialog.ShowDialog(); switch (dialog.Selection) { case UnsavedChanges.Result.SaveAndClose: if (!save()) e.Cancel = true; // don't close if Save failed. break; case UnsavedChanges.Result.DiscardAndClose: break; case UnsavedChanges.Result.ReturnToForm: e.Cancel = true; break; } }