public void CloseDialog(ModalViewMenuItem vmi) { if (this.ViewNameDialogDictionary.ContainsKey(vmi.ViewName)) { var dialog = this.ViewNameDialogDictionary[vmi.ViewName]; if (dialog is ICustomContentDialog) { var userControl = (((ICustomContentDialog)dialog).Content) as UserControl; if (userControl is IDisposable) { (userControl as IDisposable).Dispose(); } if (userControl.DataContext is IDisposable) { (userControl.DataContext as IDisposable).Dispose(); } } this.ViewNameDialogDictionary.Remove(vmi.ViewName); dialog.Close(); vmi.OnCloseDialog(); } }
public void OpenDialog(ModalViewMenuItem vmi, object parameter, DialogMode dialogMode) { var view = this.OpenDialog(vmi, dialogMode); if (view.DataContext != null && view.DataContext is BaseViewModel) { var viewModel = view.DataContext as BaseViewModel; viewModel.ForceFireNavigateEvent(parameter); } }
public UserControl OpenDialog(ModalViewMenuItem vmi, DialogMode dialogMode) { var view = (UserControl)ServiceLocator.Current.GetInstance(vmi.ViewType); IDialog dialog = this.dialogManager.CreateCustomContentDialog(view, vmi.Title, dialogMode); dialog.CloseBehavior = DialogCloseBehavior.ExplicitClose; dialog.OnDialogOpened += Dialog_OnDialogOpened; if (view.DataContext != null && view.DataContext is BaseViewModel) { var viewModel = view.DataContext as BaseViewModel; if (viewModel is ICustomOkCancelControl) { var cocvm = (viewModel as ICustomOkCancelControl); dialog.Cancel = () => { if (cocvm.CancelClicked()) { CloseDialog(vmi); } }; dialog.Ok = () => { if (cocvm.OkClicked()) { CloseDialog(vmi); } }; } } else { dialog.Cancel = () => { CloseDialog(vmi); }; } dialog.Show(); if (!this.ViewNameDialogDictionary.ContainsKey(vmi.ViewName)) { this.ViewNameDialogDictionary.Add(vmi.ViewName, dialog); } return(view); }
/// <summary> /// Constructor /// </summary> /// <param name="viewMenuItem"></param> public OpenModalViewCommand(ModalViewMenuItem viewMenuItem) { vmi = viewMenuItem; }