1

我有一个由 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设置...

有任何想法吗?

4

1 回答 1

2

基本上:您不想在 WPF 中以这种方式做事,而是sender使用MVVM ...事件触发后它显然会发生变化。尽管正如我所说,在使用 WPF 时您确实希望尽可能多地使用 MVVM,因此使用该模式您只需拥有一个属性并将's和所有显示信息的控件绑定到它。AddedItemsethis.Domain.TextCurrentDomainComboBoxSelectedItem

于 2013-10-26T11:33:30.433 回答