Affichage dans la colonne d'une ListView

jhamy Messages postés 9 Date d'inscription jeudi 12 février 2009 Statut Membre Dernière intervention 22 avril 2010 - 9 avril 2010 à 14:14
WishhhMaster Messages postés 327 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 10 avril 2010 - 10 avril 2010 à 09:59
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

WishhhMaster Messages postés 327 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 10 avril 2010 8
10 avril 2010 à 09:59
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);
}

0
Rejoignez-nous