Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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));
        }