private static void OnAutoWireViewModelChanged(BindableObject bindable, object oldValue, object newValue) { if ((!(bindable is BaseContentPage page))) { return; } page.BindingContext = _resolve.CreateViewModel(page.GetType()); }
public async Task PushToNavigationModalAsync <TViewModel>(object?parameter = null) where TViewModel : BaseViewModel { try { var page = _resolve.CreatePage(typeof(TViewModel)); var viewModel = _resolve.CreateViewModel(page.GetType()); page.BindingContext = viewModel; var navigationPage = GetLastNavigationPage(null); if (navigationPage != null) { viewModel.InternalInitialize(parameter).SafeFireAndForget(); await navigationPage.PushAsync(page, true); } } catch (NavigationException navigationException) { Console.WriteLine(navigationException.Message); throw new NavigationException("Error while push page", navigationException); } }