场景:我希望我的搜索文本框自动完成并带有建议附加,但我的自定义源来自 datagridview 列 Reference
,并且每次更改文本框中的文本时都应该是实时的
实际结果是,它加载的时间比预期的要长,并且不会从自定义源集合中附加或建议单词
这是我的代码:
public async Task bibleReferenceCollection()
{
try
{
var loadBibleReferenceCollection = await Task.Run(() =>
{
int indexOfYourColumn = 1;
IList list = dgvScriptures.Rows;
referenceCollection.Clear();
for (int i = 0; i < list.Count; i++)
{
DataGridViewRow row = (DataGridViewRow)list[i];
data = row.Cells[indexOfYourColumn].Value.ToString();
referenceCollection.Add(data.ToString());
}
return referenceCollection;
});
txtSearchReference.AutoCompleteCustomSource = loadBibleReferenceCollection;
}
catch (Exception)
{
throw;
}
}
private async void txtSearchReference_TextChanged(object sender, EventArgs e)
{
try
{
if (txtSearchReference.Text != string.Empty)
{
await bibleReferenceCollection();
}
}
catch (Exception autocomplete)
{
MessageBox.Show(autocomplete.ToString());
}
}