public void Create()
        {
            var viewTarget = ViewTargets.DefaultView;
            var accepted = true;

            var message = new ModalViewClosedMessage(viewTarget, accepted);

            Assert.AreEqual(viewTarget, message.ViewTarget, "ViewTarget");
            Assert.AreEqual(accepted, message.Accepted, "Accepted");
        }
        public void Create_WithViewResult()
        {
            var viewTarget = ViewTargets.DefaultView;
            var accepted = true;
            var viewResult = new object();

            var message = new ModalViewClosedMessage(viewTarget, accepted, viewResult);

            Assert.AreEqual(viewTarget, message.ViewTarget, "ViewTarget");
            Assert.AreEqual(accepted, message.Accepted, "Accepted");
            Assert.AreSame(viewResult, message.ViewResult);
        }
Пример #3
0
        /// <summary>
        /// Places a view into the user interface.
        /// </summary>
        /// <param name="viewResult">
        /// The <see cref="ViewResult"/> containing the view to be placed.
        /// </param>
        public void PlaceView(ViewResult viewResult)
        {
            var view = viewResult.View as IModalView;
            if (view != null)
            {
                var modalViewModel = viewResult.View.DataContext as IModalViewModel;
                if (modalViewModel != null)
                {
                    modalViewModel.RequestClose += view.OnRequestClose;
                }

                view.Owner = AppWindow;
                view.ShowModal();

                var closedMessage = new ModalViewClosedMessage(viewResult.ViewTarget, view.Accepted, view.ViewResult);
                MessageBus.Publish<ModalViewClosedMessage>(closedMessage);
            }
            else
            {
                throw new ArgumentException("Views must implement IModalView.");
            }
        }