AutoCompleteBox在c# wpf中没有得到正确的值
本文关键字:wpf AutoCompleteBox | 更新日期: 2023-09-27 18:04:00
我目前正在做一个WPF c#项目。我正在使用AutoCompleteBox WPF控件,但我有一个问题,从框中取出值。
假设自动完成框是服务器名称,当我输入'loc'时,弹出框将显示'localhost',我从下拉框中选择值。
当我尝试提交表单并尝试获取框的值时,它将获得我键入的值,而不是我选择的值,即值将是'loc'。
下面是我用来为控件 填充自动完成项的代码using (SQLiteDataReader reader = cmd.ExecuteReader())
{
List<string> serverArr = new List<string>();
while (reader.Read())
{
serverArr.Add(reader["his_server"].ToString());
}
txtServer.ItemsSource = serverArr;
}
我从autocompletebox中获得的值通过说txtServer.Text;
更新根据@Tom study的建议,我尝试使用txtServer。selectedItem在选择自动完成项时工作正常。但是,如果键入的值不在下拉列表的自动完成范围内,则会导致空指针异常。
使用.SelectedItem
属性代替.Text
。
你也许可以
string cbValue;
if (SelectedIndex == -1) cbValue = .Text; else cbValue = .SelectedItem;