예제 #1
0
 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);
 }
예제 #2
0
        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更新。
        }