public Page Map <TViewModel>(TViewModel viewModel) where TViewModel : class { Page result = null; switch (viewModel) { case AnmeldenViewModel mainViewModel: result = new AnmeldenView(); result.BindingContext = mainViewModel; break; case DashboardViewModel dashboardViewModel: result = new DashboardView(); result.BindingContext = dashboardViewModel; dashboardViewModel.Update(); break; case StundenplanViewModel stundenplanViewModel: result = new StundenplanView(); result.BindingContext = stundenplanViewModel; stundenplanViewModel.Update(true); break; case MeldungViewModel meldungViewModel: result = new MeldungView(); result.BindingContext = meldungViewModel; break; case AbwesenheitViewModel abwesenheitViewModel: result = new AbwesenheitView(); result.BindingContext = abwesenheitViewModel; break; case VerspaetungViewModel verspaetungViewModel: result = new VerspaetungView(); result.BindingContext = verspaetungViewModel; break; case MeldungenAnzeigenViewModel meldungenAnzeigenViewModel: result = new MeldungenAnzeigenView(); result.BindingContext = meldungenAnzeigenViewModel; meldungenAnzeigenViewModel.Update(); break; } return(result); }
public App() { InitializeComponent(); //TODO prüfen ob abgeschlossen (sealed) if (!DesignMode.IsDesignModeEnabled) { var mainPage = new AnmeldenView(); var navigationPage = new NavigationPage(mainPage); var userContext = new UserContext(); HttpClient httpClient = new HttpClient((new HttpClientHandler())) { BaseAddress = new Uri("http://10.0.2.2:55939") }; Services.RegisterInstance(navigationPage.Navigation); Services.Register <IViewMapper, ViewMapper>(Lifestyle.Singleton); Services.RegisterInstance(httpClient); Services.RegisterInstance(userContext); Services.Register <DashboardViewModel>(Lifestyle.Singleton); Services.Register <DashboardMeldungenViewModel>(Lifestyle.Singleton); Services.Register <DashboardTermineViewModel>(Lifestyle.Singleton); Services.Register <StundenplanViewModel>(Lifestyle.Singleton); Services.Register <MeldungenAnzeigenViewModel>(Lifestyle.Singleton); Services.Register <MeldungViewModel>(Lifestyle.Singleton); Services.Register <AbwesenheitViewModel>(Lifestyle.Singleton); Services.Register <VerspaetungViewModel>(Lifestyle.Singleton); // Setup the initial binding context mainPage.BindingContext = Services.GetInstance <AnmeldenViewModel>(); Services.Verify(); // Assign the main page MainPage = navigationPage; } }