
- Un objet de type VersionControlServer permettant la récupération.
- Le chemin à partir du quel rechercher les enfants
- Un TreeView contenant les éléments trouvés
- Objet de type VersionControlServer permettant la récupération
- Le chemin à partir du quel recherché les enfants
- Le TreeNode contenant les éléments trouvés
Dans la Leçon 2 nous avions vue comment récupérer des éléments (fichiers, répertoires) dans TFS pour un projet donné.
Dans cette leçon, nous allons voir comment mettre ces éléments dans un TreeView.
Etape 1 : Création du TreeView
Rien de bien compliqué.
TreeView trvItem = new TreeView(); |
Etape 2 : Création d'une méthode de base
Nous allons créer une première méthode que l'on pourra appeler de n'importe où.
Elle prend 3 arguments:
private void GetAllItem(VersionControlServer vcs, string path, TreeView trvItem) { GetAllItem(vcs, path, trvItem.Nodes.Add("$")); } |
Etape 3: Création d'une méthode récursive
Méthode récursive permettant de parcourir niveau par niveau les éléments.
private void GetAllItem(VersionControlServer vcs,string path,TreeNode trnParent) { |
Code Complet :
TreeView trvItem = new TreeView();
private void GetAllItem(VersionControlServer vcs, string path, TreeView trvItem) { GetAllItem(vcs, path, trvItem.Nodes.Add("$")); } private void GetAllItem(VersionControlServer vcs,string path,TreeNode trnParent) { //Récupération des éléments du niveau en cours //Utilisation de RecursionType.OneLevel pour n'avoir que le niveau en cour //Cela permet de connaitre la hiérarchie ItemSet itemSet = vcs.GetItems(path, RecursionType.OneLevel); //Parcour des éléments trouvé foreach (Item item in itemSet.Items) { //Vérification du type d'item //Un répertoire peut avoir des sous éléments mais pas un fichier if (item.ItemType == ItemType.Folder) { //Ajout du noeud en cours TreeNode trn = trnParent.Nodes.Add(item.ServerItem.Replace(path, string.Empty)); //Récursion sur la méthode pour la récupération des éléments GetAllItem(vcs, item.ServerItem, trn); } else { //Pour un fichier ajout du noeud trnParent.Nodes.Add(item.ServerItem.Replace(path, string.Empty)); } } } |
Aucun commentaire:
Enregistrer un commentaire