Bonjour
J'ai un problème qui me simple pourtant extrêmement classique mais pourtant après avoir lu des dizaines d'articles et de posts sur des tas de sites différents, je ne trouve pas de solution.
J'ai une collection de classes Artist qui contient entre autre un code nationalité et une collection de classe Nationalities qui contient les libellés qui correspondent à ces codes (Elles alimentées part deux tables ayant une relation de 1 à n).
Dans un DataGridView, je souhaiterais afficher un ComboBox avec le libellé.
J'ai lié le DataGridView à la collection de classes Artist et le ComboBox à la collection de classe Nationalities.
Je n'arrive pas à lier mon ComboBox et la propriété int_Nationality_Code de la classe Artist.
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 using System; using System.Windows.Forms; namespace Records.Win { public partial class frm_Artists : Form { BindingSource BindingSource_Artists = new BindingSource(); BindingSource BindingSource_Nationalies = new BindingSource(); public frm_Artists() { InitializeComponent(); } private void frm_Artists_Load(object sender, EventArgs e) { Initialize_dtg_Artists(); Combo_Box_Nationality(); } private void Initialize_dtg_Artists() { BindingSource_Artists.DataSource = Artist_List; this.dtg_Artists.DataSource = BindingSource_Artists; this.dtg_Artists.Columns["int_Nationality"].DataPropertyName = "int_Nationality_Code"; }//Initialize_dtg_Artists private void Combo_Box_Nationality() { BindingSource_Nationalies.DataSource = Nationality_List; DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn(); combo.HeaderText = "Test combo"; combo.Name = "int_Nationality_Code"; combo.DataSource = BindingSource_Nationalies; combo.DataPropertyName = "int_Nationality_Code"; combo.ValueMember = "int_Nationality_Code"; combo.DisplayMember = "str_Nationality_Name"; this.dtg_Artists.Columns.Add(combo); }//Combo_Box_Nationality } }
Et donc lorsque je change la valeur dans la liste déroulante, la valeur de propriété n'est pas mise à jour.
Pourtant d'après les articles que j'ai lu, la propriété DataPropertyName devrait faire la liaison entre les deux.
Merci d'avance
Partager