C# 4.0 winform组合框自动完成缓存

C# 4.0 winform组合框自动完成缓存,c#-4.0,caching,autocomplete,combobox,C# 4.0,Caching,Autocomplete,Combobox,我有一个绑定到数据表的组合框。在combox中进行选择之后,我更新数据源(即,过滤DataTable)并将其重新绑定到combox 除了自动完成功能外,其他一切都正常 比如说,, 假设数据源的值123451234612347。现在我输入123,所以自动完成显示所有3个值。我从列表中选择了一个。然后,下面的代码更新数据源并重新加载组合框 cmbType.DataSource = dtRequestTypes.Select("Some_Condition").CopyToDataTable(); c

我有一个绑定到数据表的组合框。在combox中进行选择之后,我更新数据源(即,过滤DataTable)并将其重新绑定到combox

除了自动完成功能外,其他一切都正常

比如说,, 假设数据源的值123451234612347。现在我输入123,所以自动完成显示所有3个值。我从列表中选择了一个。然后,下面的代码更新数据源并重新加载组合框

cmbType.DataSource = dtRequestTypes.Select("Some_Condition").CopyToDataTable();
cmbType.DisplayMember = "TypeOfReq";
cmbType.ValueMember = "TypeOfReq";
cmbType.Text = "";
假设新数据源的值为abcde、abcef、abceg。现在,如果我只按向下箭头(不按任何其他按钮),“123”显示为选中文本,并在我继续按向下箭头时循环前面的3个值(12345、12346、12347)。如果我点击下拉箭头,它会显示新的值,从现在开始自动完成工作正常

我相信旧值存储在缓存中的某个地方。还有什么可以刷新的吗。我使用了.Refresh().SelectedText=“”.Text=“”。什么都不管用


非常感谢您的帮助。

AutoCompleteSource属性的价值是什么?重新加载数据后是否调用EndUpdate?我已将AutoCompleteSource属性设置为ListItems,并尝试了EndUpdate。仍然不工作。在重新加载数据之前,我添加了以下几行,现在可以工作了<代码>cmbType.DataSource=null;cmbType.Items.Clear()