public void PushPage <TViewModel>(Page page) where TViewModel : BaseViewModel { if (!_viewFactory.IsDetailView <TViewModel>()) { _navigation.PushAsync(page); } else { var masterViewModel = MasterViewModel; UIPage masterPage = null; if (masterViewModel == null) { masterPage = _viewFactory.CreateView <TMasterViewModel>(); masterViewModel = (TMasterViewModel)masterPage.BindingContext; masterViewModel.SetNavigation(_navigation); } masterViewModel.Detail = page; if (MasterViewModel == null) { _navigation.PushAsync(masterPage); } } }