我觉得对ComboBox数据绑定过程中也降低了性能。 如果可能,你应该使用其他控件而不是Combobox来处理大数据。
我假设你的用户应该知道他们想选择哪种药物,所以他们可以在搜索框中放入一部分药物名称。这只是一个选择,您可以使用TextBox(名称txtMedicines在我的示例代码中)与AutoComplete来搜索绑定数据,当用户输入某个单词在列表中进行搜索时。
这是一个示例代码
private void InitializeMedicinesAutoComplete()
{
var searchMed = Lookup.Medicines
.Where(d => d.DosageForm.Equals(cmbType.SelectedValue.ToString())).ToList();
var source = new AutoCompleteStringCollection();
foreach (var med in searchMed)
{
// **DisplayMemberText mean any field that you want to display in searching list
source.Add(med.DisplayMemberText);
}
txtMedicines.AutoCompleteMode = AutoCompleteMode.Suggest;
txtMedicines.AutoCompleteSource = AutoCompleteSource.CustomSource;
txtMedicines.AutoCompleteCustomSource = source;
}
private void cmbType_SelectedIndexChanged(object sender, EventArgs e)
{
InitializeMedicinesAutoComplete();
}
我希望这将有助于。
附注:我认为[lakh](http://en.wikipedia.org/wiki/Lakh)用作100.000 ...随意编辑,如果我的更改是错误的... –
什么是“ AsParallel'在这里? “Lookup.Medicines”是一个可查询的界面吗? – Matthew
'AsParallel'在这里没有任何意义。 – MarcinJuraszek