我想将autocompletebox与值列表一起使用,但如果用户输入了不存在的值,也会将新值添加到列表中。
我目前在我的视图模型中有一个名为“Comment”的字符串属性。目前,它绑定到视图中的文本框 - 用户键入注释并更新视图模型。简单。
为了节省时间,我的客户希望它能够从以前的值自动完成,所以我认为这样做的方式如下:
视图模型
public string Comment;
public ObservableCollection<string> CommentsList { ... }
(在创建视图模型时填充CommentsList)
查看
<AutoCompleteComboBox ItemsSource="{Binding CommentsList}" SelectedItem="{Binding Comment, Mode=TwoWay/>
因此,当用户选择一个值时,它会将值保存在Comment属性中。如果用户选择列表中的项目,则此工作正常,但如果用户键入新值,则不会更新comment属性(因为所选项目不在列表中,所以它为null)。
autocompletebox可以实现吗?
提前致谢, 将
答案 0 :(得分:4)
找到解决方案......
我需要使用Text属性,而不是SelectedItem。
<强> 文本 强> 包含用户输入或选择的当前文本。
<强> 的SelectedItem 强> 如果当前未选择任何项目,则为null。 如果用户浏览下拉列表,选择项目或点击某个项目,则会更新为该项目。
请参阅:
http://www.jeff.wilcox.name/2008/10/introducing-autocompletebox/