J'essaie de remplir une colonne de liste déroulante datagridview avec des comboboxcells dans des winforms où chaque ligne a une collection différente dérivée de la liste imbriquée dans le dictionnaire, le dictionnaire fonctionne correctement quand je l'itère et obtient son objets et leurs valeurs de chaîne, cependant chaque combinaison différente que j'ai épuisée pour remplir les cellules de liste déroulante sur la forme de chargement a échoué. C'est possible? J'ai trouvé d'autres messages où ils utilisent des événements cellclick, etc. Je préfère remplir l'initialisation de formulaire.DataGridComboBoxColumn Valeurs différentes pour chaque ligne
//this works
public void create datatable()
{
DataGridViewComboBoxColumn Data_CmBx_Col_ObjectType = new DataGridViewComboBoxColumn();
Data_CmBx_Col_FamilyType.Name = _ADD_OBJECT_TYPE;
Data_CmBx_Col_FamilyType.HeaderText = _ADD_OBJECT_TYPE;
dataGridView.Columns.Insert(6, Data_CmBx_Col_ObjectType);
//pop combobox, the dictionary works
int i = 0;
foreach (KeyValuePair<object, List<objectType>> objectAndType in combined_Dictionary)
{
i++;
if (rowIndex <= combined_Dictionary.Count)
{
CreateCustomComboBoxDataSouce(i, objectAndType.Value);
}
}
//Bind dataGridView to a datatable
dataGridView_Family.DataSource = data;
}//end method
//method is called and fails with index out of range error collection
private void CreateCustomComboBoxDataSouce(int row, List<objectAndType> type) //row index ,and two parameters
{
DataGridViewComboBoxCell comboCell = dataGridView_objectAndType[6, row] as DataGridViewComboBoxCell;
comboCell.DataSource = new BindingSource(type, null);
}//end method
Note: il des erreurs sur la ligne où le comboboxcell est créé – user7773578