我目前正在做一个WPF C#项目。我正在使用AutoCompleteBox WPF控件,但是我在获取开箱即用值时遇到了问题。
假设自动完成框是针对服务器名称的,当我键入'loc‘时,弹出框将显示为'localhost’,并从下拉框中选择该值。
然后,当我尝试提交表单并尝试获取框的值时,它将获得我键入的值,而不是我选择的值,即值将是'loc‘。
下面是我用来填充控件的AutoComplete项的代码
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指针异常。
发布于 2011-08-01 07:13:24
使用.SelectedItem
属性代替.Text
。
发布于 2011-08-01 08:42:42
你也许能够
string cbValue;
if (SelectedIndex == -1) cbValue = .Text; else cbValue = .SelectedItem;
https://stackoverflow.com/questions/6892659
复制相似问题