Bonjour à tous,

J'ai une question à propos des datagridview. Ca fait 4h que je tourne en rond sur un problème qui semble tout bête...
J'essaye d'afficher des données dans une datagridview en passant par une List d'objets.
Or, ça ne m'affiche rien. J'ai découvert avec le test ci dessous qu'il refuse d'afficher les données numériques et/ou venant d'une classe.

le bouton 1 tente de remplir le dtv avec les attributs de la classe perso contenant des variables numériques ou de type chaine > ca ne marche pas .
le bouton 2 remplis correctement le dtv avec des strings, ca fonctionne.
le bouton 3 tente de remplir le dtv avec des int et long, ca ne marche de nouveau pas.
le bouton 4 tente de remplir le dtv avec les attributs d'une classe perso2 contenant que du string > ca ne marche pas

Comment fait on pour que mon dgv accepte toutes les possibilités? Tous les tuto du web que je trouve ne rencontrent pas ce problème... et je suis sur que c'est un détail tout con...

Merci d'avance

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private List<perso> test = null;
        private List<string> test2 = null;
        private List<int> test3 = null;
        private List<perso2> test4 = null;
 
        private void Form1_Load(object sender, EventArgs e)
        {
            test = new List<perso>();
            test2 = new List<string>();
            test3 = new List<int>();
            test4 = new List<perso2>();
            test.Add(new perso("a", 1, 11));
            test.Add(new perso("b", 2, 22));
            test2.Add("aa");
            test2.Add("bb");
            test3.Add(1);
            test3.Add(234);
            test4.Add(new perso2("aa","bb"));
            test4.Add(new perso2("cc", "dd"));
 
        }
        private void button1_Click(object sender, EventArgs e)
        {
            dataGridView1.DataSource = test;
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            dataGridView1.DataSource = test2;
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            dataGridView1.DataSource = test3;
        }
 
        private void button4_Click(object sender, EventArgs e)
        {
            dataGridView1.DataSource = test4;
        }
    }
 
}
 class perso
    {
 
        private string p1;
        private int p2;
        private long p3;
 
 
        public perso(string p1, int p2, long p3)
        {
 
            this.p1 = p1;
            this.p2 = p2;
            this.p3 = p3;
        }
    }
 class perso2
 {
     private string p1;
     private string p2;
 
     public perso2(string p1, string p2)
     {
         this.p1 = p1;
         this.p2 = p2;
     }
 
 }