He mirado un rato tu código y no veo a primera vista qué error pueda tener aunque tampoco especificas con precisión qué es lo que falla.
Pero por otra parte en lo personal yo no llenaría el árbol de esta forma. Si la tabla es grande puede tardarse una eternidad.
Puedes usar el árbol en modo "virtual": cuando agregas un nodo le asignas true a su propiedad HasChildren pero no lees los hijos. Con esto logras que aparezca el [+] a la izquierda del nodo pero sin realmente tener hijos.
El evento OnExpanding del árbol se genera cuando el usuario intenta expandir el nodo. En este evento es cuando insertas los hijos del nodo tomando sus datos de la base.
De esta manera mejoras el rendimiento ya que vas a traer de la base los datos que realmente se requieran- aquellos que el usuario explícitamente solicite al intentar expandir un nodo.
// Saludos
|