J'ai pratiquement le même problème que ceci:Mise à jour d'un ComboBox databound
C# Update combobox bound to generic list
Cependant, je suis en train de changer les chaînes affichées; ne pas ajouter, supprimer ou trier. J'ai essayé la solution BindingList fournie dans la question référencée, mais cela n'a pas aidé. Je peux voir que la propriété DataSource de la liste déroulante est correctement mise à jour lorsque j'édite les éléments, mais que le contenu affiché dans la liste déroulante n'est pas celui de la propriété DataSource.
mon code se présente comme suit:
mSearchComboData = new List<SearchData>();
mSearchComboData.Add(new SearchData("", StringTable.PatientID));
mSearchComboData.Add(new SearchData("", StringTable.LastName));
mSearchComboData.Add(new SearchData("", StringTable.LastPhysician));
mSearchComboData.Add(new SearchData("", StringTable.LastExamDate));
mBindingList = new BindingList<SearchData>(mSearchComboData);
SearchComboBox.Items.Clear();
SearchComboBox.DataSource = mBindingList;
SearchComboBox.ValueMember = "Value";
SearchComboBox.DisplayMember = "Display";
...
Lorsque je tente de mettre à jour le contenu que je fais ce qui suit:
int idx = SearchComboBox.SelectedIndex;
mBindingList[idx].Display = value;
SearchComboBox.Refresh();
EDIT ::
RefreshItems semble être une méthode privée . Je viens de recevoir le message d'erreur:
" 'System.Windows.Forms.ListControl.RefreshItems()' est inaccessible en raison de son niveau de protection"
ResetBindings n'a pas d'effet.
j'avais essayé sur 13 différentes méthodes pour obtenir le combobox sur mon formulaire à jour, puis enfin trouvé cette solution. Bien écrit, et travaillé comme un charme. Merci! –