2010-03-24 3 views
1

Pour un projet, j'ai besoin d'une vue arborescente permettant à l'utilisateur de sélectionner un module, qui est ensuite affiché dans une zone de contenu. Le projet repose fortement sur la localisation et cela est fourni par les fichiers de ressources.Localisation de textes de nœuds dans treeview à l'aide de fichiers de ressources

Maintenant, j'ai découvert aujourd'hui que les textes affectés aux noeuds de la vue arborescente prédéfinie ne sont pas contenus dans les fichiers de ressources. Donc la question est de savoir s'il y a une façon de faire cela, à moins de mapper l'élément dans le code. C'est à dire. l'attribution d'un nom au nœud, l'exécution de tous les nœuds et l'extraction des ressources du gestionnaire de ressources en fonction du nom du nœud.

C'est ce que je suis actuellement en train de faire, cependant, il ne vient pas « sentir » droit:

private void TranslateNodes(TreeNodeCollection treeNodeCollection) { 
    var rm = Resources.ResourceManager; 
    foreach (TreeNode node in treeNodeCollection) { 
     node.Text = rm.GetString(node.Name + "_Text"); 
     this.TranslateNodes(node.Nodes); 
    } 
} 

Merci!

Répondre

0

Aucune solution trouvée, à l'exception de l'état unique dans l'opération ... la fermeture de la question semble appropriée.

0

Votre approche semble ok pour moi, à une exception près, elle croit que node.Name est unique bien que treeview entier (ce qui n'est pas correct dans le cas général).

Vous pouvez utiliser TreeNode.FullPath pour un noeud d'identification unique dans treeview. Ou bien votre code peut dépendre de la valeur du point nodal, mais cela dépend fortement du scénario d'utilisation.

Et n'oubliez pas d'appeler BeginUpdate-EndUpdate de TreeView.

+0

La question était de savoir s'il existe une autre (meilleure) approche. Et ... oui je sais que le nom du noeud ne doit pas être unique, mais dans mon cas il l'est. Donc malheureusement pas assez pour l'acceptation ... – AxelEckenberger

Questions connexes