public ViewModelLocator() { try { var config = new ConfigurationBuilder(); config.AddJsonFile("autofac.json"); var module = new ConfigurationModule(config.Build()); var builder = new ContainerBuilder(); builder.RegisterModule(module); Container = builder.Build(); navigationService = Container.Resolve <INavigationService>(); appViewModel = Container.Resolve <AppViewModel>(); firstViewModel = Container.Resolve <FirstViewModel>(); secondViewModel = Container.Resolve <SecondViewModel>(); thirdViewModel = Container.Resolve <ThirdViewModel>(); navigationService.Register <FirstViewModel>(firstViewModel); navigationService.Register <SecondViewModel>(secondViewModel); navigationService.Register <ThirdViewModel>(thirdViewModel); navigationService.Navigate <SecondViewModel>(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public void TestFirstViewModelNavigation() { var firstViewModel = new FirstViewModel(null); var secondViewModel = new SecondViewModel(); var thirdViewModel = new ThirdViewModel(); MainWindowViewModel mainViewModel = new MainWindowViewModel(firstViewModel, secondViewModel, thirdViewModel); Assert.AreEqual(firstViewModel, mainViewModel.CurrentViewModel); // we are in FirstViewModel, we click "Navigate to second" and in messagebox we click No var mock = new Mock <IMessageBoxService>(); mock.Setup(messageBox => messageBox.Show(It.IsAny <string>(), It.IsAny <string>(), MessageBoxButton.YesNo, MessageBoxImage.Question)) .Returns(MessageBoxResult.No); firstViewModel.MessageBoxService = mock.Object; firstViewModel.ShowSecondViewCommand.Execute(true); Assert.AreEqual(firstViewModel, mainViewModel.CurrentViewModel); // we are in FirstViewModel, we click "Navigate to second" and in the messagebox we click Yes mock = new Mock <IMessageBoxService>(); mock.Setup(messageBox => messageBox.Show(It.IsAny <string>(), It.IsAny <string>(), MessageBoxButton.YesNo, MessageBoxImage.Question)) .Returns(MessageBoxResult.Yes); firstViewModel.MessageBoxService = mock.Object; firstViewModel.ShowSecondViewCommand.Execute(true); Assert.AreEqual(secondViewModel, mainViewModel.CurrentViewModel); }
public void NavigateBack(ThirdViewModel fromViewModel, ResultCode resultCode, FlowResult result) { var thirdViewController = NavigationViewProvider.GetViewController <ThirdViewController, ThirdViewModel>(fromViewModel); var customFlowNavigationController = (CustomFlowNavigationController)thirdViewController.NavigationController; NavigateBack(customFlowNavigationController, resultCode, result, true); }
public void SwitchToThirdView(object sender, outedEventArgs e) { var view = new ThirdView(); var model = new ThirdViewModel(this); view.DataContext = model; MainContent.Content = view; }
public MainWindowViewModel(FirstViewModel firstViewModel, SecondViewModel secondViewModel, ThirdViewModel thirdViewModel) { _firstViewModel = firstViewModel; _secondViewModel = secondViewModel; _thirdViewModel = thirdViewModel; ShowFirstViewCommand = new RelayCommand(ShowFirstView); ShowSecondViewCommand = new RelayCommand(ShowSecondView); ShowThirdViewCommand = new RelayCommand(ShowThirdView); ShowFirstView(); Messenger.Default.Register <ChangePage>(this, ChangePage); }
public ThirdPage() { InitializeComponent(); //NavBarItems = new List<NavBarItem> //{ // new NavBarItem // { // Icon = "playlist_edit" // } //}; BindingContext = new ThirdViewModel(); }
public void TestSecondViewModelAndThirdViewModelNavigation() { var firstViewModel = new FirstViewModel(null); var secondViewModel = new SecondViewModel(); var thirdViewModel = new ThirdViewModel(); MainWindowViewModel mainViewModel = new MainWindowViewModel(firstViewModel, secondViewModel, thirdViewModel); mainViewModel.CurrentViewModel = secondViewModel; secondViewModel.ShowThirdViewCommand.Execute(null); Assert.AreEqual(thirdViewModel, mainViewModel.CurrentViewModel); thirdViewModel.ShowFirstViewCommand.Execute(null); Assert.AreEqual(firstViewModel, mainViewModel.CurrentViewModel); }
public ViewModelLocator() { navigationService = new NavigationService(); appViewModel = new AppViewModel(navigationService); firstViewModel = new FirstViewModel(); secondViewModel = new SecondViewModel(navigationService); thirdViewModel = new ThirdViewModel(); navigationService.Register("First", firstViewModel); navigationService.Register("Second", secondViewModel); navigationService.Register("Third", thirdViewModel); navigationService.Navigate("First"); }
public MainWindowViewModel( FirstViewModel firstViewModel, SecondViewModel secondViewModel, ThirdViewModel thirdViewModel, IMessenger messenger) { _firstViewModel = firstViewModel; _secondViewModel = secondViewModel; _thirdViewModel = thirdViewModel; _messenger = messenger; messenger.Register <ChangePageMessage>(this, ChangePage); ShowFirstViewCommand = new RelayCommand(ShowFirstView); ShowSecondViewCommand = new RelayCommand(ShowSecondView); ShowThirdViewCommand = new RelayCommand(ShowThirdView); }
public void NavigateBack(ThirdViewModel fromViewModel, ResultCode resultCode, FlowResult result) { NavigateBack <FlowResult>(fromViewModel, resultCode, result); }