Bonjour,

Voila je cherche à faire un petit soft pour gérer les droits ntfs d'une arborescence.
avec en haut mes utilisateurs Active Directory et à gauche les répertoires et sous répertoires.
au croisement une combobox avec comme choix lecture ou écriture.

1 - Quel composant dois je utiliser pour faire mon projet listview ou datagrid.
2 - Avez vous des exemples d'interface comme celle ci
3- je prends vos différents conseils

Merci d'avance pour votre aide


Je viens vers vous vers plus d'explications
Mon interface doit ressembler à ça:
Dossier dupontL dupontM dupontT
C:\RH Lecture Ecriture Lecture
C:\PAYE Aucun Ecriture Aucun


j'ai créé 2 classe

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
public class CDirectory
    {
        public string directoyName { get; set; }
        public string consultationGroupName { get; set; }
        public string lectureGroupName { get; set; }
        public string ecritureGroupName { get; set; }
        public string parentFolderName { get; set; }
        public string parentFolderFullPath { get; set; }
 
 
        public ObservableCollection<CUser> UserList = new ObservableCollection<CUser>();
    }
 
public class CUser
    {
        public string sAMAccountName { get; set; } //login
        public string givenName { get; set; } //prenom
        public string sn { get; set; } //nom
        public string displayName { get; set; } //Nom affiché
 
        public int typeDroits { get; set; }
    }
Je déclare le tout :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
ObservableCollection<CUser> colUsersTemp;
        ObservableCollection<CDirectory> directoryList;
 
        public MainWindow()
        {
            InitializeComponent();
 
            colUsersTemp = new ObservableCollection<CUser>();
 
            InitUser();
            LoadFolder();
        }
 
 
        private void InitUser()
        {
            colUsersTemp.Add(new CUser { sAMAccountName = "dupontL" });
            colUsersTemp.Add(new CUser { sAMAccountName = "dupontM" });
            colUsersTemp.Add(new CUser { sAMAccountName = "dupontT" });
 
 
 
            directoryList.Add(new CDirectory { directoyName = "c:\\RH", UserList = colUsersTemp });
            directoryList.Add(new CDirectory { directoyName = "c:\\PAYE", UserList = colUsersTemp});
 
            directoryList[0].UserList[0].typeDroits = 2;
            directoryList[0].UserList[1].typeDroits = 1;
            directoryList[0].UserList[2].typeDroits = 0;
 
            directoryList[1].UserList[0].typeDroits = 1;
            directoryList[1].UserList[1].typeDroits = 2;
            directoryList[1].UserList[2].typeDroits = 1;
 
 
            myDataGrid.DataContext = directoryList;
 
 
        }
et j'utilise comme code xaml (trouvé sur le net merci à Deborah Kurata)
http://msmvps.com/blogs/deborahk/arc...sing-mvvm.aspx

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
  <DataGrid Name="myDataGrid" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Height="477" Width="723" AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding directoyName}" Header="Dossier" />
                <DataGridTemplateColumn Width="*">
                    <DataGridTemplateColumn.HeaderStyle>
                        <Style TargetType="DataGridColumnHeader">
                            <Setter Property="HorizontalAlignment" Value="Stretch"/>
                            <Setter Property="VerticalAlignment" Value="Stretch"/>
                            <Setter Property="Margin" Value="0"/>
                            <Setter Property="ContentTemplate">
                                <Setter.Value>
                                    <DataTemplate>
                                        <ItemsControl ItemsSource="{Binding UserList,ElementName=LayoutRoot}">
                                            <ItemsControl.ItemsPanel>
                                                <ItemsPanelTemplate>
                                                    <StackPanel Orientation="Horizontal"/>
                                                </ItemsPanelTemplate>
                                            </ItemsControl.ItemsPanel>
                                            <ItemsControl.ItemTemplate>
                                                <DataTemplate>
                                                    <Border Width="70">
                                                        <TextBlock Text="{Binding sAMAccountName}" TextAlignment="Center"/>
                                                    </Border>
                                                </DataTemplate>
                                            </ItemsControl.ItemTemplate>
                                        </ItemsControl>
                                    </DataTemplate>
                                </Setter.Value>
                            </Setter>
                        </Style>
                    </DataGridTemplateColumn.HeaderStyle>
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <ItemsControl  
                                ItemsSource="{Binding UserList}">
                                <ItemsControl.ItemsPanel>
                                    <ItemsPanelTemplate>
                                        <StackPanel Orientation="Horizontal"/>
                                    </ItemsPanelTemplate>
                                </ItemsControl.ItemsPanel>
                                <ItemsControl.ItemTemplate>
                                    <DataTemplate>
                                        <Border Width="70">
                                            <TextBlock Text="{Binding typeDroits}" 
                                            TextAlignment="Center"/>
                                        </Border>
                                    </DataTemplate>
                                </ItemsControl.ItemTemplate>
                            </ItemsControl>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>
et la une exception est levé sans plus de détails.

{"Une exception a été levée par la cible d'un appel."}
{System.Collections.ListDictionaryInternal}
{"La référence d'objet n'est pas définie à une instance d'un objet."}
Quelqu’un a une idée du problème, ou peut être une autre façon de construire mes class.

Sachant que je sais déjà lister mes utilisateurs de l'active directory, ceux ci seront chargés au lancement du prog, de même pour les dossiers et sous dossiers.

PS : désolé pour les questions bête du noobs en wpf

Merci d'avance