protected override void Dispose(bool disposing) { if (disposing) { if (_masterContainer != null) { _masterContainer.Dispose(); _masterContainer = null; } if (_detailContainer != null) { _detailContainer.Dispose(); _detailContainer = null; } if (Element != null) { Element.Appearing -= OnMasterDetailAppearing; Element.Disappearing -= OnMasterDetailDisappearing; } } base.Dispose(disposing); }
public App() { InitializeComponent(); if (Device.OS == TargetPlatform.Android || Device.OS == TargetPlatform.iOS) { MainPage = new MasterDetailContainer(); } else { MainPage = new RootTabPage(); } }
protected override void OnElementChanged(ElementChangedEventArgs <MasterDetailPage> e) { if (_mdpage == null) { _mdpage = new Native.MasterDetailPage(System.Maui.Maui.NativeParent) { IsPresented = e.NewElement.IsPresented, Master = _masterContainer = new MasterDetailContainer(Element, true), Detail = _detailContainer = new MasterDetailContainer(Element, false), }; _mdpage.IsPresentedChanged += (sender, ev) => { Element.IsPresented = ev.IsPresent; }; _mdpage.UpdateIsPresentChangeable += (sender, ev) => { (Element as IMasterDetailPageController).CanChangeIsPresented = ev.CanChange; }; SetNativeView(_mdpage); } if (e.OldElement != null) { (e.OldElement as IMasterDetailPageController).BackButtonPressed -= OnBackButtonPressed; e.OldElement.Appearing -= OnMasterDetailAppearing; e.OldElement.Disappearing -= OnMasterDetailDisappearing; } if (e.NewElement != null) { (e.NewElement as IMasterDetailPageController).BackButtonPressed += OnBackButtonPressed; e.NewElement.Appearing += OnMasterDetailAppearing; e.NewElement.Disappearing += OnMasterDetailDisappearing; } UpdateMasterBehavior(); base.OnElementChanged(e); }