Bonjour à tous.
Voilà mon souci.
J'ai un DGV "alimenté" par une DataTable et je voudrais que lorsque l'utilisateur coche une CheckBox (à part du DGV), la DataTable qui alimentant me DGV change (un changement de DataSource donc).
Pour ce faire, je décide de supprimer les colonnes existantes, d'en créer de nouvelles et de les ajouter au DGV puis je change la DataSource de ce dernier.
Souci, ça ne marche pas. Déjà je n'arrive pas à créer une colonne qui a pour source une colonne de ma DataTable.
Voici mon code actuel :
Je ne sais pas si j'ai été bien clair (dur dur à expliquer tout ça ^^), donc si vous avez besoin de précisions n'hésitez pas ^^
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 private void chb_sgh_CheckedChanged(object sender, EventArgs e) { // Création du BindingSource de la DataTable PictoSGH. BindingSource pictoSGHBindingSource = new BindingSource(); pictoSGHBindingSource.DataMember = "PictoSGH"; pictoSGHBindingSource.DataSource = this.dataSet1; if (chb_sgh.Checked) { if (dgv_classification.DataSource == pictoClassificationBindingSource) { sgh_checked = true; // On supprime les colonnes de dgv_classification. dgv_classification.Columns.Remove("NomPictoClass"); dgv_classification.Columns.Remove("ColCheckedBoxClass"); // Création et ajout des nouvelles colonnes. DataGridViewTextBoxColumn NomPictoSGH = new DataGridViewTextBoxColumn(); DataGridViewCheckBoxColumn ColCheckedBoxSGH = new DataGridViewCheckBoxColumn(); NomPictoSGH.DataPropertyName = pictoSGHBindingSource.Container.Components[1].ToString(); dgv_classification.Columns.Add(NomPictoSGH); dgv_classification.Columns.Add(ColCheckedBoxSGH); // Modification du DataSource de dgv_classification. dgv_classification.DataSource = pictoSGHBindingSource; } } else { if (dgv_classification.DataSource == pictoSGHBindingSource) { // Code pour revenir au DataGridView (dgv_classification) de départ. } } }
Merci d'avance.
Partager