WPF / Silverlight AutoCompleteBox能够向列表添加新值

时间:2010-04-27 10:30:08

标签: c# .net wpf silverlight autocompletebox

我想将autocompletebox与值列表一起使用,但如果用户输入了不存在的值,也会将新值添加到列表中。

我目前在我的视图模型中有一个名为“Comment”的字符串属性。目前,它绑定到视图中的文本框 - 用户键入注释并更新视图模型。简单。

为了节省时间,我的客户希望它能够从以前的值自动完成,所以我认为这样做的方式如下:

视图模型

public string Comment;
public ObservableCollection<string> CommentsList { ... }

(在创建视图模型时填充CommentsList)

查看

<AutoCompleteComboBox ItemsSource="{Binding CommentsList}" SelectedItem="{Binding Comment, Mode=TwoWay/>

因此,当用户选择一个值时,它会将值保存在Comment属性中。如果用户选择列表中的项目,则此工作正常,但如果用户键入新值,则不会更新comment属性(因为所选项目不在列表中,所以它为null)。

autocompletebox可以实现吗?

提前致谢, 将

1 个答案:

答案 0 :(得分:4)

找到解决方案......

我需要使用Text属性,而不是SelectedItem。

<强> 文本 包含用户输入或选择的当前文本。

<强> 的SelectedItem 如果当前未选择任何项目,则为null。 如果用户浏览下拉列表,选择项目或点击某个项目,则会更新为该项目。

请参阅:

http://www.jeff.wilcox.name/2008/10/introducing-autocompletebox/