Datagridview et Liste <> [Résolu]

ducker88 277 Messages postés lundi 9 février 2004Date d'inscription 4 mai 2008 Dernière intervention - 12 févr. 2007 à 12:18 - Dernière réponse : Whismeril 11625 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 juin 2018 Dernière intervention
- 18 oct. 2017 à 23:36
Bonjour à tous,

J'essaye de connecter une liste generique à un datagridview. Voici mon code :

 List<four> lstf= new List<four>();
          
            lstf.Add(new four(1, "toto", "tutu"));
            lstf.Add(new four(1, "toto1", "tutu1"));
            lstf.Add(new four(1, "toto2", "tutu2"));
           
              dataGridView1.DataSource = lstf ;

four etant une classe dont la structure est :

 class four
{
           public int id;
            public string valeur1;
            public string valeur2;

        public four(int i, string val1, string val2)
        {
            this.id = i;
            valeur1 = val1;
            valeur2 = val2;
        }
 }

Le problème est que rien ne s'affiche dans le datagridview. Aurais-je oublier quelque chose ?

Merci par avance.

duck88
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 12 févr. 2007 à 13:46
3
Merci
Romagny -> non ce n'est pas bon ;)

Tu dois avoir une propriété (publique bien sur) avec un get; pour que ton champ soit visible via le binding. Simplement déclarer une variable publique ne suffira pas.

Mx
MVP C# 

Merci MorpionMx 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 123 internautes ce mois-ci

Commenter la réponse de MorpionMx
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 12 févr. 2007 à 12:30
0
Merci
Salut,

iI faut juste que ta class four expose des propriétés pour chaque objet que tu souhaites afficher dans ton DataGridView

Mx
MVP C# 
Commenter la réponse de MorpionMx
romagny13 710 Messages postés lundi 10 janvier 2005Date d'inscription 27 août 2014 Dernière intervention - 12 févr. 2007 à 13:22
0
Merci
Non ca a l'air bon
par contre juste une idée regarde si ton datagridview a pas deja son databinding ou sa datasource de configurée(ce qui peut arriver par exemple si on le glisse depuis la fenetre source de données) ce qui il m'a semblé avoir deja observé peut poser des pb .

++
Commenter la réponse de romagny13
ducker88 277 Messages postés lundi 9 février 2004Date d'inscription 4 mai 2008 Dernière intervention - 12 févr. 2007 à 13:42
0
Merci
Merci les gars,
Les propriétés sont exposés puisqu'elles sont en public. Aucun valeur dans le databinding ou le datasouce. C'est louche

duck88
Commenter la réponse de ducker88
ducker88 277 Messages postés lundi 9 février 2004Date d'inscription 4 mai 2008 Dernière intervention - 12 févr. 2007 à 13:59
0
Merci
Ca y est ca marche impec.
Merci a vous deux pour votre aide.

duck88
Commenter la réponse de ducker88
romagny13 710 Messages postés lundi 10 janvier 2005Date d'inscription 27 août 2014 Dernière intervention - 13 févr. 2007 à 00:44
0
Merci
erf oui j'avais pas vu il a du oublier "public" devant class four
Commenter la réponse de romagny13
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 13 févr. 2007 à 08:30
0
Merci
Nonon, que la class four soit publique ou non ne changerait rien dans son cas.
S'il voulait par exemple afficher la valeur de "valeur1" dans le DataGridView, il lui faut ajouter la propriété

<hr />
public
string Valeur1
{

   get {
return
this.valeur1; }
}
<hr />

Mx
MVP C# 
Commenter la réponse de MorpionMx
ducker88 277 Messages postés lundi 9 février 2004Date d'inscription 4 mai 2008 Dernière intervention - 13 févr. 2007 à 09:27
0
Merci
Et c'est exactement ce que j'ai fait pour résoudre le problème

duck88
Commenter la réponse de ducker88
romagny13 710 Messages postés lundi 10 janvier 2005Date d'inscription 27 août 2014 Dernière intervention - 13 févr. 2007 à 13:25
0
Merci
a oui exact (bon on va pas se laisser embeter par une liste generique qd mm lol)
en fait il manquait 2 choses :
- declarer la classe four en public (sinon on n'aura pas accés à cetet classe ce qui de tout facon retournera une erreur a la compilation avec un message type "accessibilté incoherente")
- des accesseurs pour chaque membre
ex : declarer un membre en private
private int  m_id;

le property correspondant :
public int id
{
get
{
return m_id;
}
set
{
m_id=value;
}
}

pendant que j'y suis si tu veux un peu personnaliser l'affichage du datgridview(ex: ne rendre que certaines colonnes visbles,definir une colonne en combobox,...) je te conseille de passer soit par un bindingsource,ou carrement gerer par code(en ajoutant les colonnes,cellules,lignes) cest ce sur quoi j'essaie de plancher en ce moment,car jke trouve ce control(datagridview) bien compliqué meme seulement pour gerer les 4 operations de bases (lister,ajouter une ligne,modifier une ligne,supprimer une ligne), ce pour quoi pourtant il est destiné lol
++
Commenter la réponse de romagny13
rollandSteph 1 Messages postés mercredi 18 octobre 2017Date d'inscription 18 octobre 2017 Dernière intervention - 18 oct. 2017 à 23:34
0
Merci
bonsoir tout le monde,
bon je sais que le sujet commence à dater mais du coup je voulais savoir comment récupérer la ligne sélectionnée du datagridview sous forme d'objet (dans ce cas d'objet four)
Merci d'avance
Cordialement
Whismeril 11625 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 juin 2018 Dernière intervention - 18 oct. 2017 à 23:36
Commenter la réponse de rollandSteph

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.