示例#1
0
 private void AfterTreeUpdated(FolderTree tree)
 {
     if (CurrentTree.Equals(tree))
     {
         UpdateTree(tree);
     }
     else
     {
         CurrentTree.FindTree(tree).CopyFrom(tree);
         int index = GridItems.FindIndex(i => i.Tree.Equals(tree));
         if (index > -1)
         {
             var item = GridItems[index];
             item.Tree        = tree;
             GridItems[index] = item;
         }
         if (tree.Equals(Settings.settings.Tree))
         {
             SetupTreeView(tree);
         }
         else if (FindNode(LocalFoldersTreeView.RootNodes.FirstOrDefault(n => tree.Path.StartsWith((n.Content as FolderTree).Path)), tree) is TreeViewNode node)
         {
             node.Content = tree;
             if (!node.HasUnrealizedChildren)
             {
                 FillTreeNode(node);
             }
         }
     }
 }
示例#2
0
 public void UpdatePage(FolderTree tree)
 {
     if (tree.Equals(CurrentTree))
     {
         Setup(tree);
     }
 }
示例#3
0
 private TreeViewNode FindNode(TreeViewNode node, FolderTree tree)
 {
     return(node == null || tree.Equals(node.Content) ? node :
            FindNode(node.Children.FirstOrDefault(sub => tree.Path.StartsWith((sub.Content as FolderTree).Path)), tree));
 }