private TreeNode GetNodeFilter(TreeList tree, TreeNode node, string path) { var obj = node.Tag as CloudItem; if (obj == null || obj.data != null) { return(null); } if (path == obj.fullpath) { return(node); } if (path.StartsWith(obj.fullpath)) { TreeCloud.SetIsExpanded(node, true); if (node.Children == null) { return(null); } foreach (var child in node.Children) { var result = GetNodeFilter(tree, child, path); if (result != null) { return(result); } } } return(null); }
private void UpdateTree(string path) { TreeCloud.Model = new CloudItem("", "root"); var node_matching = GetNodeRoot(TreeCloud, path); if (node_matching == null) { // Set the root expanded TreeCloud.SetIsExpanded(TreeCloud.Nodes.First(), true); } else { // Investigate why this doesn't work half of the time... it doesn't scroll enough TreeCloud.UpdateLayout(); TreeCloud.ScrollIntoView(node_matching); TreeCloud.SetIsExpanded(node_matching, true); } }