Affichage dans la colonne d'une ListView

Signaler
Messages postés
9
Date d'inscription
jeudi 12 février 2009
Statut
Membre
Dernière intervention
22 avril 2010
-
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
-
Bonjour à tous,
J'ai un léger soucis dans mon ListView.
Un petit screenshot explicatif:



L'appli fait un listing des droits d'accès des utilisateurs sur les dossiers.

J'affiche les droits des utilisateurs dans la mauvaise colonne .

// affiche les username / groupname
try
{
     DirectorySecurity dirSec = Directory.GetAccessControl(((TreeView)sender).SelectedNode.FullPath);
AuthorizationRuleCollection rules = dirSec.GetAccessRules(true, true, typeof(NTAccount));

     foreach (FileSystemAccessRule rule in rules)
     {
          string groupOrUser = rule.IdentityReference.Value;
          this.UserView.Items.Add(groupOrUser.ToString());
     }
}
catch { }
      
// affiche les droits
try
{
     DirectorySecurity dirSec = Directory.GetAccessControl(((TreeView)sender).SelectedNode.FullPath);
     AuthorizationRuleCollection rules = dirSec.GetAccessRules(true, true, typeof(NTAccount));

     foreach (FileSystemAccessRule rule in rules)
     {
          FileSystemRights rights = rule.FileSystemRights;
          this.UserView.Items.Add(rights.ToString());

     }
}
catch { }



Pourriez vous m'indiquer la bonne syntaxe s'il vous plaît ?
Merci d'avance, bonne journée à vous
Jerome

1 réponse

Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
7
Salut,

Pour chaque groupe/utilisateur tu dois créer un ListViewItem et l'ajouter à ta listview. Le constructeur du ListViewItem peut prendre les valeurs des colonnes en paramètre.

Tu n'as besoin que d'une seul boucle.
foreach (FileSystemAccessRule rule in rules)
{
   string groupOrUser = rule.IdentityReference.Value;
   FileSystemRights rights = rule.FileSystemRights;
   ListViewItem lvi = new ListViewItem(new string[] { groupOrUser, rights.ToString() });
   this.UserView.Items.Add(lvi);
}