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
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 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; } }
et j'utilise comme code xaml (trouvé sur le net merci à Deborah Kurata)
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; }
http://msmvps.com/blogs/deborahk/arc...sing-mvvm.aspx
et la une exception est levé sans plus de détails.
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>
Quelqu’un a une idée du problème, ou peut être une autre façon de construire mes class.{"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."}
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
Partager