private async Task InternalNavigateToAsync(Type viewModelType, object parameter) { Page page = CreatePage(viewModelType); if (page is MainView) { Application.Current.MainPage = new CustomNavigationView(page); } else { CustomNavigationView navigationPage = Application.Current.MainPage as CustomNavigationView; if (navigationPage != null) { await navigationPage.PushAsync(page); } else { Application.Current.MainPage = new CustomNavigationView(page); } } // Pass parameter in.. await(page.BindingContext as ViewModelBase).InitializeAsync(parameter); }
public async Task GoBackAsync() { CustomNavigationView navigationPage = Application.Current.MainPage as CustomNavigationView; if (navigationPage != null) { await navigationPage.PopAsync(); } }
private Task InitializeApplication() { ViewModelLocator.RegisterDependencies(); var page = ViewModelLocator.CreatePage <MainViewModel>(); MainPage = new CustomNavigationView(page); return((page.BindingContext as MainViewModel).InitializeAsync(null)); }
public async Task GoBackAsync(object arguments) { await GoBackAsync(); CustomNavigationView mainPage = Application.Current.MainPage as CustomNavigationView; if (mainPage.CurrentPage.BindingContext is ViewModelBase viewModel) { await viewModel.InitializeAsync(arguments); } }
public void InitAfterResumeApp() { try { CustomNavigationView customNavigationView = Application.Current.MainPage as CustomNavigationView; customNavigationView.Navigation.NavigationStack .Select(p => (ViewModelBase)p.BindingContext) .ToList().ForEach(viewModel => viewModel.InitializeAsync(null)); } catch (Exception ex) { Crashes.TrackError(ex); Debugger.Break(); } }
public App() { InitializeComponent(); InitApp(); if (Device.RuntimePlatform == Device.UWP) { InitNavigation(); } MainPage = new CustomNavigationView(new MainMenuView()); }
public void UnsubscribeAfterSleepApp() { try { CustomNavigationView customNavigationView = Application.Current.MainPage as CustomNavigationView; SleepAppArg sleepAppArg = new SleepAppArg(); customNavigationView.Navigation.NavigationStack .Select <Page, ViewModelBase>(p => (ViewModelBase)p.BindingContext) .ToList <ViewModelBase>().ForEach(viewModel => viewModel.InitializeAsync(sleepAppArg)); } catch (Exception ex) { Crashes.TrackError(ex); Debugger.Break(); } }
private async Task InternalNavigateToAsync(Type viewModelType, object parameter) { Page page = CreatePage(viewModelType, parameter); if (page is MainView) { Application.Current.MainPage = page; } else if (page is LoginView) { Application.Current.MainPage = new CustomNavigationView(page); } else if (Application.Current.MainPage is MainView) { var mainPage = Application.Current.MainPage as MainView; var navigationPage = mainPage.Detail as CustomNavigationView; if (viewModelType == typeof(SalesManagementViewModel) || viewModelType == typeof(DashboardViewModel) || viewModelType == typeof(AddressDetailViewModel) || navigationPage == null) { navigationPage = new CustomNavigationView(page); mainPage.Detail = navigationPage; } else { await navigationPage.PushAsync(page); } mainPage.IsPresented = false; } else { var navigationPage = Application.Current.MainPage as CustomNavigationView; if (navigationPage != null) { await navigationPage.PushAsync(page); } else { Application.Current.MainPage = new CustomNavigationView(page); } } await(page.BindingContext as ViewModelBase).InitializeAsync(parameter); }
protected virtual async Task InternalNavigateToAsync(Type viewModelType, object parameter) { Page page = CreateAndBindPage(viewModelType, parameter); if (page is MainView) { CurrentApplication.MainPage = page; } else if (page is LoginView) { CurrentApplication.MainPage = new CustomNavigationView(page); } else if (CurrentApplication.MainPage is MainView) { var mainPage = CurrentApplication.MainPage as MainView; var navigationPage = mainPage.Detail as CustomNavigationView; if (navigationPage != null) { await navigationPage.PushAsync(page); } else { navigationPage = new CustomNavigationView(page); mainPage.Detail = navigationPage; } mainPage.IsPresented = false; } else { var navigationPage = CurrentApplication.MainPage as CustomNavigationView; if (navigationPage != null) { await navigationPage.PushAsync(page); } else { CurrentApplication.MainPage = new CustomNavigationView(page); } } await(page.BindingContext as ViewModelBase).InitializeAsync(parameter); }
private bool NotAlreadyOpened(Page currentPage, CustomNavigationView navigationPage) { return(navigationPage.Navigation.NavigationStack.Count == 0 || navigationPage.Navigation.NavigationStack.Last().GetType() != currentPage.GetType()); }
public App() { InitializeComponent(); MainPage = new CustomNavigationView(new TimelineView()); }