public void NavigateTo(Job item) { JobDetailsPage page = new JobDetailsPage(jobService); page.BindingContext = item; Detail = new NavigationPage(page); IsPresented = false; }
public JobMasterDetailPage() { JobListPage listPage = new JobListPage(jobService); listPage.JobList.ItemSelected += (sender, e) => { var selectedJob = e.SelectedItem as Job; if (selectedJob != null) { NavigateTo(e.SelectedItem as Job); } }; var listNavigationPage = new MyNavigationPage(listPage); listNavigationPage.Title = "Appointments"; Master = listNavigationPage; JobDetailsPage details = new JobDetailsPage(jobService); details.Content.IsVisible = false; Detail = new MyNavigationPage(details); }
public JobListPage() { detailPage = new JobDetailsPage(); jobList = new ListView { HasUnevenRows = true, IsGroupingEnabled = true, GroupDisplayBinding = new Binding("Key"), GroupHeaderTemplate = new DataTemplate(typeof(JobGroupingHeaderCell)), ItemTemplate = new DataTemplate(typeof(JobCell)) }; jobList.ItemTapped += async (sender, e) => { var selectedJob = e.Item as Job; if (selectedJob != null) await ShowJobDetailsAsync((Job)e.Item); }; searchBar = new SearchBar { Placeholder = "Enter search" }; searchBar.SearchButtonPressed += async (object sender, EventArgs e) => { await RefreshAsync(); }; var syncButton = new Button { HorizontalOptions = LayoutOptions.CenterAndExpand, VerticalOptions = LayoutOptions.CenterAndExpand, Font = AppStyle.DefaultFont, Text = "Sync", WidthRequest = 100 }; syncButton.Clicked += async (object sender, EventArgs e) => { try { syncButton.Text = "Syncing.."; await App.JobService.SyncAsync(); await this.RefreshAsync(); } finally { syncButton.Text = "Sync"; } }; var clearButton = new Button { HorizontalOptions = LayoutOptions.CenterAndExpand, VerticalOptions = LayoutOptions.CenterAndExpand, Font = AppStyle.DefaultFont, Text = "Clear", WidthRequest = 100 }; clearButton.Clicked += async (object sender, EventArgs e) => { await App.JobService.ClearAllJobs(); await this.RefreshAsync(); }; this.Title = "All Jobs"; this.Content = new StackLayout { Orientation = StackOrientation.Vertical, Children = { searchBar, new StackLayout { Orientation = StackOrientation.Horizontal, Children = { syncButton, clearButton } }, jobList } }; }
public JobListPage() { detailPage = new JobDetailsPage(); jobList = new ListView { HasUnevenRows = true, IsGroupingEnabled = true, GroupDisplayBinding = new Binding("Key"), GroupHeaderTemplate = new DataTemplate(typeof(JobGroupingHeaderCell)), ItemTemplate = new DataTemplate(typeof(JobCell)) }; jobList.ItemTapped += async(sender, e) => { var selectedJob = e.Item as Job; if (selectedJob != null) { await ShowJobDetailsAsync((Job)e.Item); } }; searchBar = new SearchBar { Placeholder = "Enter search" }; searchBar.SearchButtonPressed += async(object sender, EventArgs e) => { await RefreshAsync(); }; var syncButton = new Button { HorizontalOptions = LayoutOptions.CenterAndExpand, VerticalOptions = LayoutOptions.CenterAndExpand, Font = AppStyle.DefaultFont, Text = "Sync", WidthRequest = 100 }; syncButton.Clicked += async(object sender, EventArgs e) => { try { syncButton.Text = "Syncing.."; await App.JobService.SyncAsync(); await this.RefreshAsync(); } finally { syncButton.Text = "Sync"; } }; var clearButton = new Button { HorizontalOptions = LayoutOptions.CenterAndExpand, VerticalOptions = LayoutOptions.CenterAndExpand, Font = AppStyle.DefaultFont, Text = "Clear", WidthRequest = 100 }; clearButton.Clicked += async(object sender, EventArgs e) => { await App.JobService.ClearAllJobs(); await this.RefreshAsync(); }; this.Title = "All Jobs"; this.Content = new StackLayout { Orientation = StackOrientation.Vertical, Children = { searchBar, new StackLayout { Orientation = StackOrientation.Horizontal, Children = { syncButton, clearButton } }, jobList } }; }