/// <summary> /// Builds this instance into a Nova Tree Module. /// </summary> /// <param name="tree">The tree.</param> /// <param name="page">The page.</param> /// <returns></returns> internal NovaTreeModule Build(INovaTree tree, INavigatablePage page) { var nodes = BuildNovaTreeNodes(page); var module = new NovaTreeModule(Title, tree, nodes); return(module); }
/// <summary> /// Builds the nova treenode step. /// </summary> /// <param name="page">The page.</param> /// <returns></returns> internal override NovaTreeNodeStep Build(INavigatablePage page) { var command = page.CreateNavigationalAction <TView, TViewModel>(Id, _parameters); var node = new NovaTreeNodeStep <TView, TViewModel>(Id, Title, command); return(node); }
/// <summary> /// Builds the node. /// </summary> /// <param name="page">The page.</param> /// <param name="isStartupNode">if set to <c>true</c> [is startup node].</param> /// <returns></returns> internal override NovaTreeNodeBase Build(INavigatablePage page, bool isStartupNode) { var steps = _steps.Select(x => x.Build(page)); var group = Guid.NewGuid(); var node = new NovaMultiStepTreeNode(Title, steps, group, isStartupNode); return(node); }
/// <summary> /// Builds this instance into a Nova Tree Node /// </summary> /// <param name="page">The page.</param> /// <param name="isStartupNode">if set to <c>true</c> [is startup node].</param> /// <returns></returns> internal override NovaTreeNodeBase Build(INavigatablePage page, bool isStartupNode) { var command = _createNavigationalAction(page); var node = new NovaTreeNode(_id, Title, _pageType, _viewModelType, command, isStartupNode); return(node); }
/// <summary> /// Builds the nodes. /// </summary> /// <param name="page">The page.</param> /// <returns></returns> internal IEnumerable <NovaTreeNodeBase> BuildNovaTreeNodes(INavigatablePage page) { var nodes = _treeNodes.OrderByDescending(x => x.Rank) .Select(x => x.Build(page, x == _startUpTreeNode)) .Distinct() .ToList() .AsReadOnly(); return(nodes); }
/// <inheritdoc /> public bool Navigate(INavigatablePage page, object parameter) { if (page.PlatformPage is Type pageType) { return(Frame.Navigate(pageType, parameter)); } throw new ArgumentException("指定平台 page.PlatformPage 不是 Type" + $"\r\n can not convert {page.PlatformPage.GetType()} to Type"); }
/// <inheritdoc /> public bool Navigate(INavigatablePage page, object parameter) { return(Frame.Navigate(page.PlatformPage, parameter)); }
/// <summary> /// 创建包含页面 /// </summary> /// <param name="viewModel"></param> /// <param name="page"></param> public ViewModelPage(INavigatableViewModel viewModel, INavigatablePage page) { ViewModel = viewModel; Page = page; Key = viewModel.Name; }
/// <summary> /// Builds this instance into a Nova Tree Module. /// </summary> /// <param name="tree">The tree.</param> /// <param name="page">The page.</param> /// <returns></returns> internal NovaTreeModule Build(INovaTree tree, INavigatablePage page) { var nodes = BuildNovaTreeNodes(page); var module = new NovaTreeModule(Title, tree, nodes); return module; }
/// <summary> /// Builds the nodes. /// </summary> /// <param name="page">The page.</param> /// <returns></returns> internal IEnumerable<NovaTreeNodeBase> BuildNovaTreeNodes(INavigatablePage page) { var nodes = _treeNodes.OrderByDescending(x => x.Rank) .Select(x => x.Build(page, x == _startUpTreeNode)) .Distinct() .ToList() .AsReadOnly(); return nodes; }
/// <summary> /// Builds the node. /// </summary> /// <param name="page">The page.</param> /// <param name="isStartupNode">if set to <c>true</c> [is startup node].</param> /// <returns></returns> internal abstract NovaTreeNodeBase Build(INavigatablePage page, bool isStartupNode);