Bonjour,

J'ai un soucis avec l'utilisation du virtualmode des DatagridView et du databinding :

Lorsque j'ajoute 1000 lignes vides (à l'aide d'un .addCopie() d'une ligne vide) à mon datagridView l'event CellValueNeeded est bien executé.

Lorsque j'essaie de charger une liste d'objets simple dans mon datagridView à l'aide de la propriété Datasource l'event CellValueNeeded n'est plus éxécutée.

Dans les deux cas VirtualMode est bien égal à true.

Quelqu'un peut il m'expliquer pourquoi ?

Voici un bout de mon code :

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
 
private void AddUserView_Load(object sender, EventArgs e)
{
... 
_personDataGrid.VirtualMode = true;
 _personDataGrid.ReadOnly = true;
 
List<obj> l = new List<obj>(); 
for (int i = 0; i <= 10000; i++)
{
                obj z = new obj();
                 z.U = i;
                 z.M = i;
                 l.Add(z);
}
  _personDataGrid.DataSource = l; 
...
}
 
 private void _personDataGrid_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e)
{
            MessageBox.Show("hello");
            //....
}
 
public class obj
    {
        private int m;
        private int u;
 
        public int U
        { get { return u; } set { u = value; } }
        public int M
        { get { return m; } set { m = value; } }
 
    }
Rien d'extraordinaire donc ....

Merci