public async Task NavigateTo(ViewModelBase viewModel) { // Creates the view based on the given target viewmodel var page = _viewLocator.CreateAndBindPageFor(viewModel); await viewModel.BeforeFirstShown(); await Navigator.PushAsync(page); }
public async Task NavigateTo(BaseViewModel viewModel) { Page page = viewLocator.CreateAndBindPageFor(viewModel); await viewModel.BeforeFirstShown(); await Navigator.PushAsync(page); await viewModel.OnAppearing(); }
//Public methods public void PresentAsMainPage(IViewModelNavigationBase viewModel) { if (PresentationRoot.MainPage is NavigationPage navPage) { navPage.PopRequested -= NavPagePopRequested; } viewModel.BeforeFirstShown(); var page = _viewLocator.CreateAndBindPageFor(viewModel); PresentationRoot.MainPage = page; IEnumerable <IViewModelNavigationBase> viewModelsToDismiss = FindViewModelsToDismiss(PresentationRoot.MainPage); foreach (var toDismiss in viewModelsToDismiss) { toDismiss.AfterDismissed(); } }
public void PresentAsMainPage(BaseViewModel viewModel) { var page = _viewLocator.CreateAndBindPageFor(viewModel); IEnumerable <BaseViewModel> viewModelsToDismiss = FindViewModelsToDismiss(_presentationRoot.MainPage); if (_presentationRoot.MainPage is NavigationPage navPage) { // If we're replacing a navigation page, unsub from events navPage.PopRequested -= NavPagePopRequested; } viewModel.BeforeFirstShown(); _presentationRoot.MainPage = page; foreach (BaseViewModel toDismiss in viewModelsToDismiss) { toDismiss.AfterDismissed(); } }
public void PresentAsMainPage(INavigationViewModel viewModel) { var page = _viewLocator.CreateAndBindPageFor(viewModel); _presentationRoot.MainPage = page; }