组合框显示与先前组合框选择相关的记录

时间:2013-10-26 10:59:21

标签: mysql wpf combobox

我有一个由MYSQL表中的列填充的组合框。

当点击此组合框中的项目时,它应该在文本框中显示相应的记录。

它没有那样做。相反,它显示我之前选择的记录。

我没有足够的代表在这里发布图片,但如果您需要更好的理解,这里是图片链接;

http://www.tiikoni.com/tis/view/?id=be86310

(没有添加或弹出窗口。只是图像)

这是代码

    private void Domain_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        string sqlcon = "datasource = localhost; port = 3306; username = root; password = Avalisque";
        string query = "select * from users.stmp where domain = '" + this.Domain.Text + "' ;";
        MySqlConnection con = new MySqlConnection(sqlcon);
        MySqlCommand cmd = new MySqlCommand(query, con);
        MySqlDataReader rdr;

        try
        {
            con.Open();
            rdr = cmd.ExecuteReader();

            while (rdr.Read())
            {
                string semail = rdr.GetInt32("email_ID").ToString();
                string sserver = rdr.GetString("server");
                string sport = rdr.GetString("port");
                string ssecurity = rdr.GetString("security");

                Domain_ID.Text = semail;
                STMP.Text = sserver;
                port.Text = sport;
                security.Text = ssecurity;

            }

            con.Close();

        }

        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

有趣/令人沮丧的部分,此代码在普通文本框中完美运行。输入“Gmail”,并在完成按“l”...

时弹出gmail设置

任何想法?

1 个答案:

答案 0 :(得分:2)

基本上:你不想在WPF中这样做,使用MVVM代替...... 如果必须,我建议您从sender或更好,e的{​​{1}}属性中获取所选项目 - 我不知道this.Domain.Text指向的是什么,但是事件发生后,它显然会发生变化。虽然正如我所说,你真的想在使用WPF时尽可能多地使用MVVM,所以使用这个模式你只需要一个CurrentDomain属性并绑定ComboBox的{​​{1}}以及向其显示信息的所有控件。