/// <summary> /// Expande un nodo /// </summary> private void ExpandNodes(TreeViewItemsViewModelCollection nodes, List <Tuple <string, string> > nodesExpanded) { if (nodes != null) { foreach (ITreeViewItemViewModel node in nodes) { if (Checkexpanded(node, nodesExpanded)) { // Expande el nodo node.IsExpanded = true; // Expande los hijos ExpandNodes(node.Children, nodesExpanded); } } } }
/// <summary> /// Obtiene recursivamente los elementos seleccionados /// </summary> private List <Tuple <string, string> > GetNodesExpanded(TreeViewItemsViewModelCollection nodes) { List <Tuple <string, string> > expanded = new List <Tuple <string, string> >(); // Recorre los nodos obteniendo los seleccionados foreach (TreeViewItemViewModel node in nodes) { // Añade el nodo si se ha expandido if (node.IsExpanded) { expanded.Add(new Tuple <string, string>(node.GetType().ToString(), node.NodeID)); } // Añade los nodos hijo if (node.Children != null && node.Children.Count > 0) { expanded.AddRange(GetNodesExpanded(node.Children)); } } // Devuelve la colección de nodos return(expanded); }