Esempio n. 1
0
        public void ShowPage(
            IServiceProvider serviceProvider,
            string name,
            NavigationPageState state,
            bool replaceCurrentTab)
        {
            if (serviceProvider == null)
            {
                throw new ArgumentNullException("serviceProvider");
            }
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }

            INavigationPage oldPage = null;
            var             newPage = _navigationPageFactory.CreatePage(serviceProvider, name, state);

            if (replaceCurrentTab && CurrentPage != null)
            {
                oldPage = CurrentPage;
                RemovePage(oldPage);
            }

            AddPage(newPage);

            _openedPagesChanged.OnNext(
                new PagesChangedEventArgs(
                    oldPage,
                    newPage,
                    oldPage != null ? PagesChangeType.Updated : PagesChangeType.Added));

            CurrentPage = newPage;
        }