J'ai un paiement de table qui a une colonne d'entier nul pouvant être appelée payMonth. J'ai la classe et la liste suivantes:Liaison C# datagridviewcomboboxcolumn pour lister l'affichage, le formatage, préféré Erreur de taille
public class months
{
public int payMonth { get; set; }
public string monthName { get; set; }
}
lstMonths = new List<months> {
,new months() { payMonth = 1, monthName = "jan" }
,new months() { payMonth = 2, monthName = "feb" }
,new months() { payMonth = 3, monthName = "mar" }
,new months() { payMonth = 4, monthName = "apr" }
,new months() { payMonth = 5, monthName = "may" }
,new months() { payMonth = 6, monthName = "jun" }
,new months() { payMonth = 7, monthName = "jul" }
,new months() { payMonth = 8, monthName = "aug" }
,new months() { payMonth = 9, monthName = "sep" }
,new months() { payMonth = 10, monthName = "oct" }
,new months() { payMonth = 11, monthName = "nov" }
,new months() { payMonth = 12, monthName = "dec" }};
cmbMonth = new DataGridViewComboBoxColumn();
cmbMonth.DataSource = lstMonths;
cmbMonth.ValueMember = "payMonth";
cmbMonth.DisplayMember = "monthName";
cmbMonth.DataPropertyName = "payMonth";
cmbMonth.Name = "cmbPayMonth";
cmbMonth.HeaderText = "Month";
cmbMonth.FlatStyle = FlatStyle.Flat;
cmbMonth.Width = 80;
dgvPayments.Columns.Insert(5, cmbMonth);
Le problème vient ici. Lorsque les données sont affichées dans le dgv, le composant DataGridViewComboBoxColumn cmbMonth affiche les valeurs numériques (1,2,3, ...) et non le nom du mois ('Jan', 'Feb', 'Mar', ...). Et quand je clique sur le dgv, il affiche l'erreur: formatage, affichage et parfois formatage, preferredSize. Lorsque je supprime la propriété DataPropertyName, cette erreur disparaît mais les données ne sont pas affichées. Cependant, les valeurs payMonth dans la table sont uniquement dans la plage de la liste ou sont null.
Ce tableau est des paiements:
Quel est le problème?
Je ne vois rien de suspect dans votre exemple de code. Avez-vous des eventhandlers de formatage pour 'DataGridVIew'? – Fabio
Aucun gestionnaire, mais le style de cellule par défaut –
Quel est le type de colonne 'payMonth' dans la table de paiement? Est-ce que c'est Int32 comme dans la liste des mois? – Fabio