/// <summary> /// Creates an instance of <see cref="ViewModelLocator"/>. /// </summary> /// <param name="typeResolver">The type resolver.</param> public ViewModelLocator(IViewModelTypeResolver typeResolver) { if (typeResolver == null) throw new ArgumentNullException(nameof(typeResolver)); _typeResolver = typeResolver; }
/// <summary> /// Creates an instance of <see cref="FrameAdapter" />. /// </summary> /// <param name="frame">The frame to represent as a <see cref="INavigationService" />.</param> /// <param name="viewModelLocator">The view-model locator.</param> /// <param name="viewModelBinder">The view-model binder.</param> /// <param name="viewModelTypeResolver">The view-model type resolver.</param> public FrameAdapter(Frame frame, IViewModelLocator viewModelLocator, IViewModelBinder viewModelBinder, IViewModelTypeResolver viewModelTypeResolver) { if (frame == null) { throw new ArgumentNullException(nameof(frame)); } if (viewModelLocator == null) { throw new ArgumentNullException(nameof(viewModelLocator)); } if (viewModelBinder == null) { throw new ArgumentNullException(nameof(viewModelBinder)); } if (viewModelTypeResolver == null) { throw new ArgumentNullException(nameof(viewModelTypeResolver)); } _frame = frame; _viewModelLocator = viewModelLocator; _viewModelBinder = viewModelBinder; _viewModelTypeResolver = viewModelTypeResolver; _frame.Navigating += OnNavigating; _frame.Navigated += OnNavigated; // This could leak memory if we're creating and destorying navigation services regularly. var navigationManager = SystemNavigationManager.GetForCurrentView(); navigationManager.BackRequested += OnBackRequested; }
/// <summary> /// Creates an instance of <see cref="ViewModelLocator"/>. /// </summary> /// <param name="typeResolver">The type resolver.</param> public ViewModelLocator(IViewModelTypeResolver typeResolver) { if (typeResolver == null) { throw new ArgumentNullException(nameof(typeResolver)); } _typeResolver = typeResolver; }
/// <summary> /// Creates an instance of <see cref="NavigationService" />. /// </summary> /// <param name="frame">The frame to represent as a <see cref="INavigationService" />.</param> /// <param name="viewModelTypeResolver">The view-model type resolver.</param> public NavigationService(Frame frame, IViewModelTypeResolver viewModelTypeResolver) { if (frame == null) { throw new ArgumentNullException(nameof(frame)); } if (viewModelTypeResolver == null) { throw new ArgumentNullException(nameof(viewModelTypeResolver)); } _frame = frame; _viewModelTypeResolver = viewModelTypeResolver; }
/// <summary> /// Creates an instance of <see cref="FrameAdapter" />. /// </summary> /// <param name="frame">The frame to represent as a <see cref="INavigationService" />.</param> /// <param name="viewModelLocator">The view-model locator.</param> /// <param name="viewModelBinder">The view-model binder.</param> /// <param name="viewModelTypeResolver">The view-model type resolver.</param> public FrameAdapter(Frame frame, IViewModelLocator viewModelLocator, IViewModelBinder viewModelBinder, IViewModelTypeResolver viewModelTypeResolver) { if (frame == null) throw new ArgumentNullException(nameof(frame)); if (viewModelLocator == null) throw new ArgumentNullException(nameof(viewModelLocator)); if (viewModelBinder == null) throw new ArgumentNullException(nameof(viewModelBinder)); if (viewModelTypeResolver == null) throw new ArgumentNullException(nameof(viewModelTypeResolver)); _frame = frame; _viewModelLocator = viewModelLocator; _viewModelBinder = viewModelBinder; _viewModelTypeResolver = viewModelTypeResolver; _frame.Navigating += OnNavigating; _frame.Navigated += OnNavigated; // This could leak memory if we're creating and destorying navigation services regularly. var navigationManager = SystemNavigationManager.GetForCurrentView(); navigationManager.BackRequested += OnBackRequested; }