public ConfirmationResult ShowDialog(IConfirmationDialogRegister dialog) { try { return _dialogAction.ShowDialog(dialog); } catch (Exception ex) { _errorAction(new Exception($"Unexpected error thrown by {dialog.Title} confirmation dialog.", ex)); } return ConfirmationResult.None; }
public ConfirmationResult ShowDialog(IConfirmationDialogRegister dialog) { var view = new ConfirmationView(); var viewModel = new ConfirmationViewModel(); viewModel.Update(dialog); view.DataContext = viewModel; var window = CreateWindow(view, dialog.Owner ?? _owner); window.SetBinding(System.Windows.Window.TitleProperty, new Binding("Title") {Source = viewModel}); viewModel.CloseCommand = new DelegateCommand<ConfirmationResult?>(x => { viewModel.Result = x ?? dialog.DefaultResult; window.Close(); }); var result = _showAction(window, true); if (!result.HasValue) return ConfirmationResult.None; return viewModel.Result; }