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