private void InitializeNavigationTreeView() { // 遍历所有导航节点扩展模型对象。 foreach (var node in NavigationService.NavigationNodes) { // TODO: 如果没有权限则隐藏 => 没有权限则Disable //if (!node.HasPermission()) //{ // continue; //} // 为导航节点创建相应的树节点 var treeViewItem = CreateTreeViewItem(node); treeViewItem.IsEnabled = node.HasPermission(); TopTreeViewItemNavigationNodeTuples.Add(new System.Tuple <NavigationNode, TreeViewItem>(node, treeViewItem)); // 创建子节点 InitializeNavigationNode(node, treeViewItem); // 添加到树 NavigationTreeView.Items.Add(treeViewItem); } // 添加换肤项 SkinTreeViewItem = CreateTreeViewItem("系统设置", "/UIShell.WpfShellPlugin;component/Assets/Settings.png", string.Empty, null); NavigationTreeView.Items.Add(SkinTreeViewItem); }
private void ResetNavigation() { if (BundleRuntime.Instance.State == BundleRuntimeState.Stopping) { return; } Action resetNavigation = () => { // 重新初始化TreeView SkinUserControl = new Settings(); WelcomeControl = new Introduction(); LayoutDockPanel.Children.Clear(); ContentQueue.Clear(); OpenedPagesCache.Clear(); HideSidebar(); SideBars.Clear(); SideBarSettings.Clear(); TreeViewItemSelectionQueue.Clear(); TopTreeViewItemNavigationNodeTuples.Clear(); NavigationTreeView.Items.Clear(); InitializeNavigationTreeView(); if (BundleActivator.PermissionServiceTracker.IsServiceAvailable) { SetCurrentUser(BundleActivator.PermissionServiceTracker.DefaultOrFirstService.CurrentUserName); } ShowContent(WelcomeControl); }; Dispatcher.Invoke(resetNavigation); // 由界面代理线程来执行UI更新。 }