Páginas

lunes, 23 de agosto de 2010

Un poco de código en C# [Llenado de TreeView]

Muchas veces necesitamos crear una estructura de árbol sin saber cual es el nivel de recurrencia de nodos hijos, en programación es posible gracias a la característica de recurrencia un pequeño ejemplo en C# de como invocar a una función desde la misma función haciendo posible la estructuración de un Treeview con una sola función.
void ReadStruct()
     {
         TreeNode node;
         treeView1.Nodes.Clear();
         node = treeView1.Nodes.Add(“Nodo padre");
         node.Tag = contenedordenodos;
         foreach (Nodo oNodo in contenedordenodos.Nodos)
         {
             AgregaNodo(oNodo,node);
         }
     }
   void AgregaNodo(Nodo oNodo,TreeNode NodeContainer)
    {
         TreeNode node;
         node = NodeContainer.Nodes.Add(oNodo.descripcion);
         node.Tag = oNodo;
        node.ImageIndex = 0;
        node.SelectedImageIndex = 1;
        foreach (Nodo oNodoX in oNodo.Nodos)
        {
             AgregaNodo(oNodoX,node);
         }
    }
Para hacer posible este tipo de estructuración creamos anteriormente una clase Serializable [Osea que permita guardar su estructura y contenido en archivos.] que contenga en forma jerargica la información de los nodos. en este caso el código con el que está  creada la clase para este ejemplo es el siguiente:
[Serializable]   //// Objetivo que se pueda guardar en un archivo esto
public class Nodo
{
    public Collection<Nodo> Nodos = new Collection<Nodo>();
    public Nodo()
    {
        descripcion = "Nuevo Nodo";
    }
}
una de las propiedades es “Nodos” que es una colección de objetos de la misma clase, lo que permite crear la estructura jerargica.
[Serializable] Permite guardar el contenido de esta clase en tiempo de ejecución teniendo la posibilidad de recuperarla y llenar el Tree tal como lo dejamos.

No hay comentarios: