public void OnPaneClosing(object sender, PaneClosingEventArgs e) { ContentPane contentPane = sender as ContentPane; if (contentPane != null) { var pane = contentPane; WorkSurfaceContextViewModel model = pane.DataContext as WorkSurfaceContextViewModel; if (model != null) { var vm = model; vm.TryClose(); var mainVm = vm.Parent as MainViewModel; if (mainVm != null) { if (mainVm.CloseCurrent) { vm.Dispose(); } else { e.Cancel = true; } } } } }
/// <summary> /// Called when the view is about to be closed. /// </summary> /// <param name = "sender">The sender.</param> /// <param name = "e">The <see cref = "System.ComponentModel.CancelEventArgs" /> instance containing the event data.</param> private void OnClosing(object sender, PaneClosingEventArgs e) { var guard = (IGuardClose)_viewModel; if (_isClosing) { _isClosing = false; return; } bool shouldEnd = false; guard.CanClose(canClose => Execute.OnUIThread(() => { e.Cancel = !canClose; shouldEnd = true; })); if (shouldEnd) { return; } e.Cancel = true; }
public void OnPaneClosing(object sender, PaneClosingEventArgs e) { ContentPane contentPane = sender as ContentPane; if (contentPane != null) { var pane = contentPane; WorkSurfaceContextViewModel model = pane.DataContext as WorkSurfaceContextViewModel; if (model != null) { var workflowVm = model.WorkSurfaceViewModel as IWorkflowDesignerViewModel; IContextualResourceModel resource = workflowVm?.ResourceModel; if (resource != null && !resource.IsWorkflowSaved) { CloseCurrent(e, model); } else { var sourceView = model.WorkSurfaceViewModel as IStudioTab; if (sourceView != null) { CloseCurrent(e, model); } } } } }
static void CloseCurrent(PaneClosingEventArgs e, WorkSurfaceContextViewModel model) { var vm = model; vm.TryClose(); if (vm.Parent is ShellViewModel mainVm && !mainVm.CloseCurrent) { e.Cancel = true; } }
public void OnPaneClosing(object sender, PaneClosingEventArgs e) { if (sender is ContentPane contentPane) { var pane = contentPane; if (pane.DataContext is WorkSurfaceContextViewModel model) { CloseCurrentWorkSurfaceWorkflowDesignerViewModel(e, model); } } }
static void CloseCurrentWorkSurfaceWorkflowDesignerViewModel(PaneClosingEventArgs e, WorkSurfaceContextViewModel model) { var workflowVm = model.WorkSurfaceViewModel as IWorkflowDesignerViewModel; var resource = workflowVm?.ResourceModel; if (resource != null && !resource.IsWorkflowSaved) { CloseCurrent(e, model); } else { if (model.WorkSurfaceViewModel is IStudioTab sourceView) { CloseCurrent(e, model); } } }
private static void CloseCurrent(PaneClosingEventArgs e, WorkSurfaceContextViewModel model) { var vm = model; vm.TryClose(); var mainVm = vm.Parent as ShellViewModel; if (mainVm != null) { if (mainVm.CloseCurrent) { //vm.Dispose(); } else { e.Cancel = true; } } }
public void OnPaneClosing(object sender, PaneClosingEventArgs e) { ContentPane contentPane = sender as ContentPane; if(contentPane != null) { var pane = contentPane; WorkSurfaceContextViewModel model = pane.DataContext as WorkSurfaceContextViewModel; if(model != null) { var vm = model; vm.TryClose(); var mainVm = vm.Parent as MainViewModel; if(mainVm != null) { if(mainVm.CloseCurrent) { vm.Dispose(); } else { e.Cancel = true; } } } } }
/// <summary> /// Called when the view is about to be closed. /// </summary> /// <param name = "sender">The sender.</param> /// <param name = "e">The <see cref = "System.ComponentModel.CancelEventArgs" /> instance containing the event data.</param> private void OnClosing(object sender, PaneClosingEventArgs e) { var guard = (IGuardClose)_viewModel; if(_isClosing) { _isClosing = false; return; } bool shouldEnd = false; guard.CanClose(canClose => Execute.OnUIThread(() => { e.Cancel = !canClose; shouldEnd = true; })); if(shouldEnd) return; e.Cancel = true; }