使用 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);
    }

更新:看起来我的数据库有问题。上面的代码只是工作,但它需要文本更改事件,而不是文本更新。感谢您的贡献。

使用 Linq 在运行时使用筛选的数据集更新组合框

您可能

希望改为处理 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并改用其AutoCompleteCustomSourceAutoCompleteModeAutoCompleteSource属性。