public MasterDetailPageDemo() { //ListData var menuData = new List<DetailPageContent> { new DetailPageContent("Box View Page", typeof (BoxViewDemoPage)), new DetailPageContent("Content Page", typeof (ContentDemoPage)), new DetailPageContent("Image Page", typeof (DownloadImageDemoPage)), new DetailPageContent("Label Page", typeof (LabelPage)), new DetailPageContent("Stop Watch App", typeof (StopWatchApp)) }; //Create MenuListView var detailMenuView = new ListView { ItemsSource = menuData, }; //Create new TapGesture var tap = new TapGestureRecognizer(); tap.Tapped += (sender, args) => { IsPresented = true; }; //Click/tap eventhandler detailMenuView.ItemSelected += (sender, args) => { var detailItem = (DetailPageContent) args.SelectedItem; DetailPageContent detailList = new DetailPageContent(detailItem.Name, detailItem.DetailPage); ContentPage page = (ContentPage) Activator.CreateInstance(detailList.DetailPage); Detail = page; page.Content.GestureRecognizers.Add(tap); IsPresented = false; }; //Set Homepage Detail var home = new BoxViewDemoPage(); Detail = home; home.Content.GestureRecognizers.Add(tap); //BuildPage Master = new ContentPage { Title = "MasterPage", Content = new StackLayout { Children = { detailMenuView } } }; }
//View public MasterDetailDemoPage() { var menuPage = new MenuPage(); menuPage.Menu.ItemSelected += (sender, e) => NavigateTo(e.SelectedItem as MenuItem); Master = menuPage; var box = new BoxViewDemoPage(); Detail = box; var tap = new TapGestureRecognizer(); tap.Tapped += (sender, args) => { IsPresented = true; }; box.Content.BackgroundColor = Color.Transparent; box.Content.GestureRecognizers.Add(tap); }