2010-04-27 67 views
0

我想将autocompletebox与值列表一起使用,但是如果用户输入一个不存在的值,也会向列表中添加新值。WPF/Silverlight AutoCompleteBox能够将新值添加到列表中

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

为了节省时间,我的客户希望它从以前的值自动完成,所以我想这样做的方式是一样的东西:

视图模型

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

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

查看

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

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

这可能与自动完成框?

由于提前, 将

回答

4

找到了解决办法...

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

文字 包含用户输入或选择的当前文字。

的SelectedItem 如果当前没有选中的项为空。 如果用户通过下拉菜单导航,选择项目或点击某个项目,则会更新为该项目。

参见:

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

+0

+1看起来不错。对不起,控制与mvvm一起使用不太方便。 – 2010-04-28 00:27:30