2011-11-26 30 views
7

Tengo un TreeView en mi aplicación de Windows. Tn este TreeView, el usuario puede añadir algunos nodos raíz y también algunos subnodos para estos nodos raíz y también algunos subnodos para estos nodos sub y así sucesivamente ...¿Cómo puedo encontrar un nodo raíz en TreeView?

Por ejemplo:

Root1 
    A 
     B 
     C 
     D 
      E 
Root2 
    F 
     G 
. 
. 
. 

Ahora mi pregunta es que si estoy en el nodo 'E', ¿cuál es la mejor manera de encontrar su primer nodo raíz ('Root1')?

Respuesta

13

Aquí es un poco de método para usted:

private TreeNode FindRootNode(TreeNode treeNode) 
{ 
    while (treeNode.Parent != null) 
    { 
     treeNode = treeNode.Parent; 
    } 
    return treeNode; 
} 

puede llamar en su código como este:

var rootNode = FindRootNode(currentTreeNode); 
+0

gracias Fischermaen, por lo que la vista de árbol no tiene ninguna propiedad para encontrar el nodo raíz del un subnodo, ¿verdad? –

+0

@M_Mogharrabi: Eso es correcto. – Fischermaen

+1

es mucho mejor para cachear la raíz durante la población. –

Cuestiones relacionadas