async Task NavigateToView(Type viewModelType) { if (viewModelType is null) { throw new ArgumentNullException(nameof(viewModelType)); } Type viewType; if (!_map.TryGetValue(viewModelType, out viewType)) { throw new ArgumentException("No view found in view mapping for " + viewModelType.FullName + "."); } var constructor = viewType.GetTypeInfo() .DeclaredConstructors .FirstOrDefault(dc => dc.GetParameters().Count() <= 0); var view = constructor.Invoke(null) as Page; var vm = ((App)Application.Current).Kernel.GetService(viewModelType); view.BindingContext = vm; await XamarinFormsNav.PushAsync(view, true); }
private async Task NavigateToView(Type viewModelType) { Type viewType; if (!_map.TryGetValue(viewModelType, out viewType)) { throw new ArgumentException("No view found in View Mapping for " + viewModelType.FullName + "."); } var constructor = viewType.GetTypeInfo() .DeclaredConstructors .FirstOrDefault(dc => dc.GetParameters().Count() <= 0); var view = constructor.Invoke(null) as Page; await XamarinFormsNav.PushAsync(view, true); }