Remplissage d'un datagrid avec une collection récursive

Soyez le premier à donner votre avis sur cette source.

Vue 15 866 fois - Téléchargée 1 855 fois

Description

Ca yest, depuis quelques semaine je me suis mis à VB Dot Net.
Je vous fais part de mes premières investigations qui ne sont pas sans interrets, me-semble t-il.

J'ai découvert que l'on pouvait affecter une collection directement à un dataGrid.
Du coup j'ai voulu savoir si il tenait compte des collections enfants, et bien oui, c'est génial.
J'ai poussé le bouchon pour voir si il tenait compte des collections récursive, et bien oui.
Par contre l'ordre des colonnes est semble t'il défini au moment de la compilation, et je ne suis pas arrivé à le controler.
J'ai cru comprendre que c'était possible via les <Attrubutes> de fonction mais je n'ai pas encore trouvé comment, si quelqu'un a une idéee ca m'interresse.
En tout cas si ce n'ai pas génial pour une interface utilisateur, c'est absolument génial pour faire facilemnt un <Dysplay> d'une collection
Ce qui offre une aide non négligeable au débugage en 1 ligne de code.
D'autre part seule les propriés sont mappées dans le DataGrid, pas les Fontions (Domage)
La navigation dans le data grid est un peu déroutante. losque que l'on est entré sur la fiche d'un enfant, une flèche noire apparait en haut à droire qui permet de remonter vers le parent.
Hormis le code de la classe elle même, et la fonction de remplissage de test, une ligne de code suffit pout visualiser une collection.

Vous remarquerez au passage la méthode utilisée pour construire des collecions fortement typées (touts les doc que j'ai lu ne sont pas très clair la dessus) pourtant personnellement je les utilise beaucoup, et je ne suis probablement pas le seul.

Pour info il est toujours possible en codant un peu les collection sous jacentes du Datagrid de le mettre en forme plus proprement, mais la l'objectif etait juste de controler le contenu d'une collection.
PS: le projet est compilé avec optionstrict=On et optionExplicit=on (autant faire propre dés le début)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

blq
Messages postés
97
Date d'inscription
vendredi 22 octobre 1999
Statut
Membre
Dernière intervention
13 juin 2016
1 -
Testé avec succès dans VB Express 10. Merci, car je ne connaissais pas cette propriété du DataGrid et en effet c'est super et d'une simplicité parfaite.
Stingray_fr_88
Messages postés
5
Date d'inscription
jeudi 26 mai 2005
Statut
Membre
Dernière intervention
23 mars 2006
-
Voici une solution pour controler l'ordre des colonnes (en C#) en utilisant un DataGridTableStyle.

// Relier le DataGrid à la Source
_monDataGrid.DataSource = _maCollectionBase;
// Création d'un style
_monDataGrid.TableStyles.Clear();
_monDataGrid.TableStyles.Add(new DataGridTableStyle());
_monDataGrid.TableStyles[0].MappingName =
_maCollectionBase.GetType().Name;
_monDataGrid.TableStyles[0].GridColumnStyles.Clear();
// Création de la colonne n°1
DataGridColumnStyle col1 = new DataGridTextBoxColumn();
col1.MappingName = "Prop1"; // Nom de ma propriété
col1.HeaderText = "Titre colonne 1";
col1.Width = 100;
_monDataGrid.TableStyles[0].GridColumnStyles.Add(col1);
// Création de la colonne n°2
DataGridColumnStyle col2 = new DataGridTextBoxColumn();
col2.MappingName = "Prop2";
col2.HeaderText = "Titre colonne2";
col2.Width = 100;
_monDataGrid.TableStyles[0].GridColumnStyles.Add(col2);
.........
OneHacker
Messages postés
1466
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
23 septembre 2007
1 -
Génial ! Ca va être plus rapide maintenant pour ce qui est du remplissage !

Bonne continuation !

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.