Bonjour à tous.
Alors je rencontre un souci et je ne sais pas vraiment comment le résoudre.
Petite explication :
Dans un premier temps j'ai eu besoin de faire des datagrid avec gestion des colonnes en dynamiques, du coup je suis parti sur une solution qu'on trouve sur le net qui consiste à fournir en datasource de notre datagrid un.IEnumerable<IDictionary>
Solution peu propre car elle nous impose des limites :
- des problèmes sur les entêtes de colonnes (obligation d'utiliser une lettre en premier caractère et impossibilité d'utiliser des caractères spéciaux)
- pas vraiment compatible avec le pattern MVVM que j'utilise.
Dans un second temps, un prestataire nous a proposé sa version pour résoudre le souci compatible MVVM.
Je vais pas vous décrire sa solution mais elle fonctionne très bien et nous permet aisément de créer des datagrid avec génération des colonnes automatiques.
Le souci que je rencontre aujourd'hui est d'adapter le système qui me permettait de faire un Collapse sur une colonne de mon ancien datagrid.
Le code que j'utilise se passe en behind sur le datagrid :
Code c# : 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 public void GroupByRow(List<object> GroupKey) { if (GroupKey.Count > 0) { PagedCollectionView pcv = this.DataGrid.ItemsSource as PagedCollectionView; try { foreach (CollectionViewGroup group in pcv.Groups) { if (GroupKey.Contains(group.Name)) DataGrid.CollapseRowGroup(group, true); } } catch (Exception ex) { throw ex; } } }
le code étant appelé quand les données sont chargés dans la grille.
Aujourd'hui lorsque je veux réutiliser cette solution je me retrouve dans une impasse, l'ItemSource de mon Datagrid n'étant plus un PagedCollectionView mais un autre objet.
Je cherche donc une solution (si elle existe) pour déclarer en XAML la colonne sur laquelle je veux grouper.
Je ne sais pas si c'est vraiment possible, donc je m'en remets à vos connaissances.
Cordialement
Partager