/// <summary> /// Отображает модальное диалоговое окно с указанным представлением. /// </summary> /// <param name="viewModel">Указывает на представление, которое необходимо отобразить в модальном окне.</param> public bool ShowModalWindow(BaseVM viewModel, string caption = "", ModalWindowButtons buttonType = ModalWindowButtons.OnlyOkButton, string btnOkText = "Ок", string btnCancelText = "Отмена", Action <BaseVM> okResult = null, Action <BaseVM> cancelResult = null) { var result = false; if (viewModelToViewMap.TryGetValue(viewModel.GetType(), out Type viewType)) { var view = Activator.CreateInstance(viewType) as BaseView; view.ViewModel = viewModel; var modalWindow = new ModalWindow(view) { Owner = mainWindow }; modalWindow.DataContext = new ModalWindowVM(this, caption, buttonType, btnOkText, btnCancelText); result = modalWindow.ShowDialog() ?? false; if (result) { okResult?.Invoke(viewModel); } else { cancelResult?.Invoke(viewModel); } } return(result); }
/// <summary> /// Отображает модальное диалоговое окно с указанным текстом. /// </summary> /// <param name="viewModel">Указывает на представление, которое необходимо отобразить в модальном окне.</param> public bool ShowModalWindow(string text, string caption = "", ModalWindowButtons buttonType = ModalWindowButtons.OnlyOkButton, string btnOkText = "Ок", string btnCancelText = "Отмена", Action <BaseVM> okResult = null, Action <BaseVM> cancelResult = null) { var viewModel = new ModalMessageVM(this, text); return(ShowModalWindow(viewModel, caption, buttonType, btnOkText, btnCancelText, okResult, cancelResult)); }