async Task PushTabbedLeadPage(Account lead = null) { LeadDetailViewModel viewModel = new LeadDetailViewModel(Navigation, lead); TabbedPage tabbedPage = new TabbedPage(); tabbedPage.ToolbarItems.Add( new ToolbarItem(TextResources.Save, null, async () => { var answer = await DisplayAlert( title: TextResources.Leads_SaveConfirmTitle, message: TextResources.Leads_SaveConfirmDescription, accept: TextResources.Save, cancel: TextResources.Cancel); if (answer) { viewModel.SaveLeadCommand.Execute(null); await Navigation.PopModalAsync(); } })); tabbedPage.ToolbarItems.Add( new ToolbarItem(TextResources.Exit, null, async () => { { var answer = await DisplayAlert( title: TextResources.Leads_ExitConfirmTitle, message: TextResources.Leads_ExitConfirmDescription, accept: TextResources.Exit_and_Discard, cancel: TextResources.Cancel); if (answer) { await Navigation.PopModalAsync(); } } })); tabbedPage.Children.Add(new LeadDetailPage() { BindingContext = viewModel, Title = TextResources.Details, Icon = new FileImageSource() { File = "LeadDetailTab" } // only used on iOS }); tabbedPage.Children.Add(new LeadContactDetailPage() { BindingContext = viewModel, Title = TextResources.Contact, Icon = new FileImageSource() { File = "LeadContactDetailTab" } // only used on iOS }); NavigationPage navPage = new NavigationPage(tabbedPage); await Navigation.PushModalAsync(navPage); }
async Task PushTabbedLeadPage(Account lead = null) { LeadDetailViewModel viewModel = new LeadDetailViewModel(Navigation, lead); var leadDetailPage = new LeadDetailPage() { BindingContext = viewModel, Title = TextResources.Details, }; if (Device.OS == TargetPlatform.iOS) leadDetailPage.Icon = Icon = new FileImageSource() { File = "LeadDetailTab" }; if (lead != null) { leadDetailPage.Title = lead.Company; } else { leadDetailPage.Title = "New Lead"; } leadDetailPage.ToolbarItems.Add( new ToolbarItem(TextResources.Save, "save.png", async () => { if (string.IsNullOrWhiteSpace(viewModel.Lead.Company)) { await DisplayAlert("Missing Information", "Please fill in the lead's company to continue", "OK"); return; } var answer = await DisplayAlert( title: TextResources.Leads_SaveConfirmTitle, message: TextResources.Leads_SaveConfirmDescription, accept: TextResources.Save, cancel: TextResources.Cancel); if (answer) { viewModel.SaveLeadCommand.Execute(null); await Navigation.PopAsync(); } })); await Navigation.PushAsync(leadDetailPage); }