В настоящее время я работаю над проектом WPF С#. Я использую элемент управления 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;
Обновлять
Как предложил @Tom Studee, я попытался использовать txtServer.selectedItem, который отлично работает, когда выбран элемент из автозаполнения. Однако, если введено значение, которое не находится в раскрывающемся списке автозаполнения, оно завершается с ошибкой Null Pointer Exception.
Text
. Как определяется вашAutoCompleteBox
? - person Fredrik Hedblad   schedule 01.08.2011Text
, или я что-то упустил? - person Fredrik Hedblad   schedule 01.08.2011