示例#1
0
 public MvvmExampleViewModel()
 {
     TestMessageOne        = "Hello World!";
     TestMessageTwo        = "I have not been initialized!";
     TestChildViewOne      = ViewLocator.LocateFor <ChildExampleViewModel>();
     TestChildViewTwo      = ViewLocator.LocateFor <ChildNoViewExampleViewModel>();
     TestChildViewModelOne = new ChildExampleViewModel();
 }
        public void Show <TViewModel>() where TViewModel : ViewModelBase
        {
            var view   = ViewLocator.LocateFor <TViewModel>();
            var window = view as Window;

            if (window != null)
            {
                window.ShowDialog();
            }
        }
        public void Can_Not_Locate_ViewModel()
        {
            TextBlock element;

            element = (TextBlock)ViewLocator.LocateFor(new MockRandomAViewModel());
            Assert.AreEqual($"Cannot locate view for '{typeof(MockRandomAViewModel).FullName}'.", element.Text);

            element = (TextBlock)ViewLocator.LocateFor(new MockRandomAViewModel().GetType());
            Assert.AreEqual($"Cannot locate view for '{typeof(MockRandomAViewModel).FullName}'.", element.Text);

            element = (TextBlock)ViewLocator.LocateFor <MockRandomAViewModel>();
            Assert.AreEqual($"Cannot locate view for '{typeof(MockRandomAViewModel).FullName}'.", element.Text);
        }
        public void Show(ViewModelBase viewModel)
        {
            if (viewModel == null)
            {
                throw new ArgumentNullException(nameof(viewModel));
            }

            var view   = ViewLocator.LocateFor(viewModel);
            var window = view as Window;

            if (window != null)
            {
                window.ShowDialog();
            }
        }
        public void Can_Locate_ViewModel()
        {
            FrameworkElement element;
            var viewModel        = new MockViewModel();
            var expectedViewName = typeof(MockView).Name;

            element = ViewLocator.LocateFor(viewModel);
            Assert.IsNotNull(element);
            Assert.AreEqual(expectedViewName, element.GetType().Name);
            Assert.AreEqual(viewModel, element.DataContext);

            element = ViewLocator.LocateFor(viewModel.GetType());
            Assert.IsNotNull(element);
            Assert.AreEqual(expectedViewName, element.GetType().Name);
            Assert.AreNotEqual(viewModel, element.DataContext);

            element = ViewLocator.LocateFor <MockViewModel>();
            Assert.IsNotNull(element);
            Assert.AreEqual(expectedViewName, element.GetType().Name);
        }