/// <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;
        }
示例#2
0
        /// <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;
        }
示例#5
0
        /// <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;
        }