根据wpf c#中文本框的值填充Combobox

时间:2018-01-21 14:19:23

标签: c# wpf combobox

我有1个文本框和1个Combobox。现在我想要做的是,当用户键入文本框,然后当他点击ComboxBox时,组合框应该自动从数据库中填充。以下是我的代码。

    public void BindComboBox3(ComboBox comboBox3)
    {
        SqlDataAdapter da = new SqlDataAdapter("Select batch_id FROM batch where product_id_fk='"+Convert.ToInt32(textBox2.Text)+"'", con);
        DataSet ds = new DataSet();
        da.Fill(ds, "batch");
        comboBox3.ItemsSource = ds.Tables[0].DefaultView;
        comboBox3.SelectedValuePath = ds.Tables[0].Columns["batch_id"].ToString();
    }

    private void comboBox3_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        try
        {
            BindComboBox3(comboBox3);
        }
        catch (Exception ex)
        {
            System.Windows.Forms.MessageBox.Show("Enter Product ID " + ex.Message);
        }
    }

1 个答案:

答案 0 :(得分:0)

用户单击并选择其他选项后,应触发组合框的选择更改事件。好像您的组合框内部没有任何内容,用户无法更改自己的首选项。这意味着用户必须进行额外点击才能触发它,否则它就永远不会触发。

您可能会考虑其他触发机制,例如 MouseUp或MouseDown,combox的鼠标悬停。您可以在事件开始时设置断点,以便您可以不时地知道事件是否被触发,同时您可以单独确保从数据库更新的代码确实有效。

或者,您可以触发组合框以更改文本框的文本已更改事件

希望它有所帮助。