Example #1
0
        private ModalResult <TResult> ShowModalInternal <TResult>(FrameworkElement view, string viewKey, string parentViewKey, object viewModel, bool isOpenedViewMember, bool isMessageBox = false)
        {
            var modalHostControl = new ModalHostControl {
                ModalContent = view
            };
            var viewInfo = NavigateToInternal(viewKey, parentViewKey, modalHostControl, viewModel, true, isOpenedViewMember, isMessageBox);

            return(new ModalResult <TResult> (modalHostControl.ResultCompletionSource.Task)
            {
                ViewInfo = viewInfo
            });
        }
Example #2
0
        private ViewGroupNode CreateNewNodeFrom(string viewInstanceKey, string viewKey, object viewModel, bool isModal, bool isMessageBox)
        {
            FrameworkElement viewInstance;

            if (isMessageBox)
            {
                viewInstance = new MessageBoxControl();
            }
            else
            {
                viewInstance             = _viewLocator.GetViewInstance(viewKey);
                viewInstance.DataContext = viewModel;

                EnforceViewKey(viewInstance, viewModel, viewInstanceKey);
            }

            var internalViewInstance = viewInstance;

            if (isModal)
            {
                var modalHost = new ModalHostControl {
                    ModalContent = viewInstance
                };
                internalViewInstance = modalHost;
            }

            var viewInfo = new View(viewInstanceKey)
            {
                UIMetadata       = GetUIMetadata(viewInstance, viewModel),
                ViewHostInstance = new ViewHostControl {
                    View = internalViewInstance
                },
                ViewInstance      = viewInstance,
                ViewModelInstance = viewModel,
                IsModal           = isModal,
                IsMessageBox      = isMessageBox
            };

            return(new ViewGroupNode(null, viewInfo));
        }