AutoCompleteBox在C#wpf中没有得到正确的值

时间:2011-07-31 22:11:11

标签: c# wpf autocompletebox

我目前正在开发一个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,当选择自动完成中的项目时,该工作正常。但是,如果键入的值不在下拉自动完成内,则会因空指针异常而失败。

2 个答案:

答案 0 :(得分:2)

而不是.Text使用.SelectedItem属性。

答案 1 :(得分:-3)

你可能

   string cbValue;
   if (SelectedIndex == -1) cbValue = .Text; else cbValue = .SelectedItem;