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在选择自动完成项时工作正常。但是,如果键入的值不在下拉列表的自动完成范围内,则会导致空指针异常。

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

使用.SelectedItem属性代替.Text

你也许可以

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