我遇到了与此几乎相同的问题:
但是,我正在尝试更改显示的字符串;不添加、删除或排序。我已经尝试过引用问题中提供的 BindingList 解决方案,但没有帮助。我可以看到组合框的 DataSource 属性在我编辑项目时已正确更新,但组合框中显示的内容不是 DataSource 属性中的内容。
我的代码如下所示:
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";
...
当我尝试更新内容时,我会执行以下操作:
int idx = SearchComboBox.SelectedIndex;
mBindingList[idx].Display = value;
SearchComboBox.Refresh();
编辑::
RefreshItems 似乎是一个私有方法。我刚刚收到错误消息:
“'System.Windows.Forms.ListControl.RefreshItems()' 由于其保护级别而无法访问”
ResetBindings 无效。