我目前正在开发一个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;
}
我通过说txtServer.Text;
从autocompletebox获取值正如@Tom Studee所建议的,我尝试使用txtServer.selectedItem,当选择自动完成中的项目时,该工作正常。但是,如果键入的值不在下拉自动完成内,则会因空指针异常而失败。
答案 0 :(得分:2)
而不是.Text
使用.SelectedItem
属性。
答案 1 :(得分:-3)
你可能
string cbValue;
if (SelectedIndex == -1) cbValue = .Text; else cbValue = .SelectedItem;