private AskSaveResult AskSaving() { MessageBoxResult res = ShowDialogManager.ShowMessageBox("そのまえに、データを保存しますか?(「いいえ」を押すと変更内容は破棄されます)", "確認", MessageBoxButton.YesNoCancel, MessageBoxImage.Question); if (res == MessageBoxResult.Cancel) { return(AskSaveResult.Cancel); } if (res == MessageBoxResult.No) { return(AskSaveResult.CanProcess); } // 一旦フォーカスを外します。 var prevFocus = FocusManager.GetFocusedElement(_view); FocusManager.SetFocusedElement(_view, _view); // 溜まってるイベントは全部処理させる WPFUtil.DoEvents(); _writersBattleFieldViewModel.SetTextToModelsComposite(); if (_fileService.SaveFile() == false) { return(AskSaving()); } return(AskSaveResult.CanProcess); }
private void OnTrySave(object sender, TrySaveOccuredEventArgs e) { // 一旦フォーカスを外します。 var prevFocus = FocusManager.GetFocusedElement(_view); FocusManager.SetFocusedElement(_view, _view); // 溜まってるイベントは全部処理させる WPFUtil.DoEvents(); _writersBattleFieldViewModel.SetTextToModelsComposite(); if (e.SaveKind == SaveKind.SaveWithName) { _fileService.SaveFileWithName(); } else { _fileService.SaveFile(); } FocusManager.SetFocusedElement(_view, prevFocus); }