public static Control GetView(JourneyViewModel journeyViewModel) { var webView = GetWebView(journeyViewModel); TabControl tabControl = new TabControl(); tabControl.Pages.Add(new TabPage(EventListView.GetView(journeyViewModel)) { Text = "Events" }); tabControl.Pages.Add(new TabPage(SpendingListView.GetView(journeyViewModel)) { Text = "Expenses" }); tabControl.Pages.Add(new TabPage(webView) { Text = "Map" }); var borderCrossingPage = new TabPage(); borderCrossingPage.Text = "Border Crossing"; borderCrossingPage.DataContext = journeyViewModel.Journey; borderCrossingPage.BindDataContext(c => c.Enabled, (Journey m) => m.IncludeBorderCrossing); borderCrossingPage.EnabledChanged += (sender, e) => { if (tabControl.SelectedIndex == 3) { tabControl.SelectedIndex = 0; } }; borderCrossingPage.Content = BorderCrossingView.GetView(journeyViewModel.Journey.BorderCrossing); tabControl.Pages.Add(borderCrossingPage); tabControl.SelectedIndexChanged += (sender, e) => { if ((sender as TabControl).SelectedPage.Text == "Map") { List <string> wayPoints = journeyViewModel.GetWayPoints(); List <DirectionRequest> directionRequests = MapHelper.GetDirectionRequests(wayPoints); var jsonDirectionRequests = JsonConvert.SerializeObject(directionRequests); string script = "calculateAndDisplayRoute(" + jsonDirectionRequests + ");"; Console.WriteLine(script); webView.ExecuteScript(script); } }; //TableLayout layoutGrids = new TableLayout(); //layoutGrids.Rows.Add(new TableRow(EventListView.GetView(journeyViewModel)) { ScaleHeight = true }); //layoutGrids.Rows.Add(new TableRow(SpendingListView.GetView(journeyViewModel)) { ScaleHeight = true }); //var button = new Button(); //button.Text = "Update map"; //button.Click += (sender, e) => { webView.ExecuteScript(journeyViewModel.GoogleMapParameters); }; TableLayout layout = ViewHelper.AppendV( GetTitleBar(journeyViewModel.Journey), ViewHelper.AppendH( ViewHelper.AppendV( ViewHelper.AppendH( GetWeatherDropDown(journeyViewModel.Journey), GetNoteSlider(journeyViewModel.Journey), GetIncludeBorderCrossing(journeyViewModel.Journey), null ), BivouacView.GetView(journeyViewModel.Journey.Bivouac) ) ), tabControl ) as TableLayout; layout.Padding = new Padding(10, 0, 10, 10); //layout.BackgroundColor = Colors.White; return(layout); }