/// <summary> /// Tries to close view-model. /// </summary> /// <param name="parameter">The specified parameter, if any.</param> /// <returns>An instance of task with result.</returns> Task <bool> ICloseableViewModel.CloseAsync(object parameter) { var closeableViewModel = ViewModel as ICloseableViewModel; if (closeableViewModel != null) { return(closeableViewModel.CloseAsync(parameter)); } var closingEvent = _internalClosingEvent; ViewModelClosedEventArgs closedArgs = null; if (closingEvent != null) { var args = new ViewModelClosingEventArgs(this, parameter); closingEvent(this, args); if (args.Cancel) { return(Empty.FalseTask); } closedArgs = args; } var closedEvent = _internalClosedEvent; if (closedEvent != null) { closedEvent(this, closedArgs ?? new ViewModelClosedEventArgs(this, parameter)); } return(Empty.TrueTask); }
protected virtual Task <bool> OnClosingAsync(IViewModel viewModel, IDataContext context) { var handler = viewModel.Settings.Metadata.GetData(ViewModelConstants.ClosingEvent); var closingTask = (viewModel as ICloseableViewModel)?.OnClosingAsync(context) ?? Empty.TrueTask; if (handler == null) { return(closingTask); } if (closingTask.IsCompleted) { var args = new ViewModelClosingEventArgs(viewModel, context); handler(viewModel, args); return(args.GetCanCloseAsync()); } return(closingTask.TryExecuteSynchronously(task => { if (!task.Result) { return Empty.FalseTask; } var args = new ViewModelClosingEventArgs(viewModel, context); handler(viewModel, args); return args.GetCanCloseAsync(); }).Unwrap()); }
public void OnClosing(ViewModelClosingEventArgs e) { var handler = Closing; if (handler != null) { handler(this, e); } }
bool RaiseViewModelClosing(object viewModel) { if (ViewModelClosing != null) { ViewModelClosingEventArgs e = new ViewModelClosingEventArgs(viewModel); ViewModelClosing(this, e); return(!e.Cancel); } return(true); }
private void OnClosing(IViewModel sender, ViewModelClosingEventArgs args) { if (SavingCheck()) { applicationSettings.lastFileName = fileName; applicationSettings.SaveToFile(); } else { args.Cancel = true; } }
bool CanRemoveCore(object viewModel) { if (viewModel == null || !viewModels.ContainsValue(viewModel)) { return(true); } ViewModelClosingEventArgs e = new ViewModelClosingEventArgs(viewModel); ViewModelClosingCommand.If(x => x.CanExecute(e)).Do(x => x.Execute(e)); ActualViewInjectionManager.RaiseViewModelClosingEvent(e); return(!e.Cancel); }
protected virtual bool RaiseClosing(object parameter) { var handler = Closing; if (handler == null) { return(true); } var args = new ViewModelClosingEventArgs(this, parameter); handler(this, args); return(!args.Cancel); }
private void ViewModelOnClosing(ICloseableViewModel sender, ViewModelClosingEventArgs args) { args.Cancel = !RaiseClosing(args.Parameter); }
void OnStrategyViewModelClosing(object sender, ViewModelClosingEventArgs e) { ViewModelClosingCommand.If(x => x.CanExecute(e)).Do(x => x.Execute(e)); ActualViewInjectionManager.RaiseViewModelClosingEvent(e); }
void OnStrategyViewModelClosing(object sender, ViewModelClosingEventArgs e) { ViewModelClosingCommand.If(x => x.CanExecute(e)).Do(x => x.Execute(e)); ActualViewInjectionManager.RaiseViewModelClosingEvent(e); }