public void OnClosed(ViewModelClosedEventArgs e) { var handler = Closed; if (handler != null) { handler(this, e); } }
/// <summary> /// Called when a view model is closed. /// </summary> /// <param name="sender">The view model</param> /// <param name="e">The event args</param> private Task ViewModelOnClosedAsync(object sender, ViewModelClosedEventArgs e) { var viewModel = (IViewModel)sender; viewModel.ClosedAsync -= ViewModelOnClosedAsync; Deactivate(viewModel); return(TaskHelper.Completed); }
private async Task PlotViewModel_ClosedAsync(object sender, ViewModelClosedEventArgs e) { PlotViewModel pvm = e.ViewModel as PlotViewModel; if (pvm == null) { return; } Plots.Remove(pvm.PlotModel); }
private async Task OnViewModelClosed(object sender, ViewModelClosedEventArgs e) { var vm = ViewModel; if (vm != null) { vm.ClosedAsync -= OnViewModelClosed; } Closed.Invoke(sender, e); }
/// <summary> /// Called when the <see cref="LogicBase.ViewModel"/> is closed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="Catel.MVVM.ViewModelClosedEventArgs"/> instance containing the event data.</param> public override void OnViewModelClosed(object sender, ViewModelClosedEventArgs e) { if (_closeInitiatedByViewModel == null) { _closeInitiatedByViewModel = true; _closeInitiatedByViewModelResult = e.Result; } base.OnViewModelClosed(sender, e); #if SILVERLIGHT if (TargetWindow is ChildWindow) { // This code is implemented due to a bug in the ChildWindow of silverlight, see: // http://silverlight.codeplex.com/workitem/7935 // Only handle this once if (_isClosed) { return; } } #endif if (_closeInitiatedByViewModelResult != null) { bool result; try { result = PropertyHelper.TrySetPropertyValue(TargetWindow, "DialogResult", _closeInitiatedByViewModelResult); } catch (Exception ex) { Log.Warning("Failed to set the 'DialogResult' exception: {0}", ex); result = false; } // Support all windows (even those that do not derive from ChildWindow) if (!result) { Log.Warning("Failed to set the 'DialogResult' property of window type '{0}', closing window via method", TargetWindow.GetType().Name); InvokeCloseDynamically(); } else if (ForceCloseAfterSettingDialogResult) { InvokeCloseDynamically(); } } else { InvokeCloseDynamically(); } }
/// <summary> /// Called when the <see cref="LogicBase.ViewModel"/> is closed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="Catel.MVVM.ViewModelClosedEventArgs"/> instance containing the event data.</param> public override async Task OnViewModelClosedAsync(object sender, ViewModelClosedEventArgs e) { if (_closeInitiatedByViewModel is null) { _closeInitiatedByViewModel = true; _closeInitiatedByViewModelResult = e.Result; } await base.OnViewModelClosedAsync(sender, e); if (_closeInitiatedByViewModelResult != null) { var result = false; // If window is null, we are assuming it's a custom window based on FrameworkElement (similar to Silverlight). In that case, // keep using the old logic var window = TargetWindow as System.Windows.Window; var canSetDialogResult = window?.CanSetDialogResult() ?? true; if (canSetDialogResult) { try { result = PropertyHelper.TrySetPropertyValue(TargetWindow, "DialogResult", _closeInitiatedByViewModelResult, true); } catch (Exception ex) { Log.Warning("Failed to set the 'DialogResult' exception: {0}", ex); result = false; } } // Support all windows (even those that do not derive from ChildWindow) if (!result) { if (canSetDialogResult) { Log.Warning("Failed to set the 'DialogResult' property of window type '{0}', closing window via method", TargetWindow.GetType().Name); } InvokeCloseDynamically(); } else if (ForceCloseAfterSettingDialogResult) { InvokeCloseDynamically(); } } else { InvokeCloseDynamically(); } }
/// <summary> /// Called when the <see cref="LogicBase.ViewModel"/> is closed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="Catel.MVVM.ViewModelClosedEventArgs"/> instance containing the event data.</param> public override async Task OnViewModelClosedAsync(object sender, ViewModelClosedEventArgs e) { if (_closeInitiatedByViewModel is null) { _closeInitiatedByViewModel = true; _closeInitiatedByViewModelResult = e.Result; } await base.OnViewModelClosedAsync(sender, e); if (_closeInitiatedByViewModelResult != null) { bool result; try { result = PropertyHelper.TrySetPropertyValue(TargetWindow, "DialogResult", _closeInitiatedByViewModelResult, true); } catch (Exception ex) { Log.Warning("Failed to set the 'DialogResult' exception: {0}", ex); result = false; } // Support all windows (even those that do not derive from ChildWindow) if (!result) { Log.Warning("Failed to set the 'DialogResult' property of window type '{0}', closing window via method", TargetWindow.GetType().Name); InvokeCloseDynamically(); } else if (ForceCloseAfterSettingDialogResult) { InvokeCloseDynamically(); } } else { InvokeCloseDynamically(); } }
private void CloseableViewModelOnClosed(object sender, ViewModelClosedEventArgs args) { if (_ignoreCloseFromViewModel) { return; } _threadManager.InvokeOnUiThreadAsync(() => { try { _closedFromViewModel = true; if (NavigationService.CanGoBack) { NavigationService.GoBack(); } } finally { _closedFromViewModel = false; } }); }
private void CloseableViewModelOnClosed(ICloseableViewModel sender, ViewModelClosedEventArgs e) { _threadManager.Invoke(ExecutionMode.AsynchronousOnUiThread, this, NavigationService, e, (provider, service, args) => { if (ReferenceEquals(provider._closingViewModel, args.ViewModel)) { return; } try { provider._closedFromViewModel = true; if (service.TryClose(args.ViewModel, args.Parameter as IDataContext)) { OnViewModelClosed(args.ViewModel, args.Parameter, provider, true); } } finally { provider._closedFromViewModel = false; } }); }
private void ViewModelOnClosed(ICloseableViewModel sender, ViewModelClosedEventArgs args) { RaiseClosed(args.Parameter); }
protected virtual void OnViewModelClosed(object sender, ViewModelClosedEventArgs e) { }
public void OnPublicEvent(object sender, ViewModelClosedEventArgs e) { PublicEventCounter++; }
private void OnViewModelClosed(ViewModelClosedEventArgs args) { ItemsSource.Remove(args.ViewModel); }
private void CloseableViewModelOnClosed(ICloseableViewModel sender, ViewModelClosedEventArgs e) { TryCloseViewModel(e.ViewModel, e.Parameter); }
private async Task ViewModelClosedAsync(object sender, ViewModelClosedEventArgs e) { Close(); }
private void OnClosed(object sender, ViewModelClosedEventArgs args) { OnClosed(args.Parameter); }
/// <summary> /// Called when the <see cref="ViewModel" /> has been closed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="System.EventArgs" /> instance containing the event data.</param> protected virtual Task OnViewModelClosedAsync(object sender, ViewModelClosedEventArgs e) => Task.CompletedTask;
/// <summary> /// Called when the <see cref="ViewModel"/> has been closed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="Catel.MVVM.ViewModelClosedEventArgs"/> instance containing the event data.</param> public virtual Task OnViewModelClosedAsync(object sender, ViewModelClosedEventArgs e) { ViewModelClosed.SafeInvoke(this, e); return ViewModelClosedAsync.SafeInvokeAsync(this, e); }
private Task OnClosedAsync(object sender, ViewModelClosedEventArgs args) { Close(); return(TaskHelper.Completed); }
/// <summary> /// Called when the <see cref="LogicBase.ViewModel"/> is closed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="Catel.MVVM.ViewModelClosedEventArgs"/> instance containing the event data.</param> public override void OnViewModelClosed(object sender, ViewModelClosedEventArgs e) { if (_closeInitiatedByViewModel == null) { _closeInitiatedByViewModel = true; _closeInitiatedByViewModelResult = e.Result; } base.OnViewModelClosed(sender, e); #if SILVERLIGHT if (TargetWindow is ChildWindow) { // This code is implemented due to a bug in the ChildWindow of silverlight, see: // http://silverlight.codeplex.com/workitem/7935 // Only handle this once if (_isClosed) { return; } } #endif if ((_closeInitiatedByViewModel ?? false) && (_closeInitiatedByViewModelResult != null)) { // Support all windows (even those that do not derive from ChildWindow) if (!PropertyHelper.TrySetPropertyValue(TargetWindow, "DialogResult", _closeInitiatedByViewModelResult)) { Log.Warning("Failed to set the 'DialogResult' property of window type '{0}'", TargetWindow.GetType().Name); } else if (ForceCloseAfterSettingDialogResult) { InvokeCloseDynamically(); } } else { InvokeCloseDynamically(); } }
private async Task OnWrappedViewModelClosedAsync(object s, ViewModelClosedEventArgs e) { await this.CloseViewModelAsync(e.Result); }
private void ViewModelClosed(object sender, ViewModelClosedEventArgs e) { Close(); }
/// <summary> /// Called when the <see cref="ViewModel"/> has been closed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> protected virtual Task OnViewModelClosedAsync(object sender, ViewModelClosedEventArgs e) { return(TaskHelper.Completed); }
/// <summary> /// Called when the <see cref="ViewModel"/> has been closed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="Catel.MVVM.ViewModelClosedEventArgs"/> instance containing the event data.</param> public virtual void OnViewModelClosed(object sender, ViewModelClosedEventArgs e) { ViewModelClosed.SafeInvoke(this, e); }
/// <summary> /// Called when the <see cref="LogicBase.ViewModel"/> is closed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="Catel.MVVM.ViewModelClosedEventArgs"/> instance containing the event data.</param> public override async Task OnViewModelClosedAsync(object sender, ViewModelClosedEventArgs e) { if (_closeInitiatedByViewModel == null) { _closeInitiatedByViewModel = true; _closeInitiatedByViewModelResult = e.Result; } await base.OnViewModelClosedAsync(sender, e); #if SILVERLIGHT if (TargetWindow is ChildWindow) { // This code is implemented due to a bug in the ChildWindow of silverlight, see: // http://silverlight.codeplex.com/workitem/7935 // Only handle this once if (_isClosed) { return; } } #endif if (_closeInitiatedByViewModelResult != null) { bool result; try { result = PropertyHelper.TrySetPropertyValue(TargetWindow, "DialogResult", _closeInitiatedByViewModelResult); } catch (Exception ex) { Log.Warning("Failed to set the 'DialogResult' exception: {0}", ex); result = false; } // Support all windows (even those that do not derive from ChildWindow) if (!result) { Log.Warning("Failed to set the 'DialogResult' property of window type '{0}', closing window via method", TargetWindow.GetType().Name); InvokeCloseDynamically(); } else if (ForceCloseAfterSettingDialogResult) { InvokeCloseDynamically(); } } else { InvokeCloseDynamically(); } }
private Task ViewModelClosed(object sender, ViewModelClosedEventArgs e) { Close(); return(Task.CompletedTask); }
/// <summary> /// Called when the <see cref="ViewModel"/> has been closed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="Catel.MVVM.ViewModelClosedEventArgs"/> instance containing the event data.</param> public virtual Task OnViewModelClosedAsync(object sender, ViewModelClosedEventArgs e) { return(ViewModelClosedAsync.SafeInvokeAsync(this, e)); }
/// <summary> /// Called when the <see cref="ViewModel"/> has been closed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> protected virtual Task OnViewModelClosedAsync(object sender, ViewModelClosedEventArgs e) { return TaskHelper.Completed; }