protected override void Dispose(bool disposing) { if (disposing) { if (Tracker != null) { Tracker.Dispose(); Tracker = null; } if (_detailLayout != null) { _detailLayout.Dispose(); _detailLayout = null; } if (_masterLayout != null) { if (_masterLayout.ChildView != null) { _masterLayout.ChildView.PropertyChanged -= HandleMasterPropertyChanged; } _masterLayout.Dispose(); _masterLayout = null; } RemoveDrawerListener(this); Device.Info.PropertyChanged -= DeviceInfoPropertyChanged; if (_page != null) { MasterDetailPageController.BackButtonPressed -= OnBackButtonPressed; _page.PropertyChanged -= HandlePropertyChanged; _page.Appearing -= MasterDetailPageAppearing; _page.Disappearing -= MasterDetailPageDisappearing; _page.ClearValue(Platform.RendererProperty); _page = null; } } base.Dispose(disposing); }