使用 Linq 在运行时使用筛选的数据集更新组合框
本文关键字:数据集 更新 组合 筛选 Linq 运行时 使用 | 更新日期: 2023-09-27 18:36:28
我想在键入组合框时更新组合框的内容。我正在使用下面的代码,但显然我做错了什么;即使在调试控制台上,也不会对内容进行筛选和更新。调试控制台仅在我删除组合框中的最后一个字符时更新。这是 debug.writeline 版本的代码(我将使用原始代码中组合框中列表中出现的第一条记录)。
private void comboBox1_TextUpdate(object sender, EventArgs e)
{
var query = ds.Tables[0].AsEnumerable()
.Where(d => d.Field<string>("FirstName").StartsWith(comboBox1.Text))
.Select(d => d.Field<string>("FirstName"));
foreach (string s in query)
Debug.WriteLine(s);
}
更新:看起来我的数据库有问题。上面的代码只是工作,但它需要文本更改事件,而不是文本更新。感谢您的贡献。
您可能
希望改为处理 TextChanged 事件。
文本已更改:"在文本属性值更改时发生。 http://msdn.microsoft.com/en-us/library/system.windows.forms.control.textchanged.aspx
文本更新:"在控件设置文本格式时发生,但在显示文本之前发生。 http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.textupdate.aspx
您似乎正在尝试实现某种自动完成。使用TextBox
并改用其AutoCompleteCustomSource
、AutoCompleteMode
和AutoCompleteSource
属性。