0

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

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

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

视图模型

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

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

看法

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

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

自动完成框可以做到这一点吗?

提前致谢, 威尔

4

1 回答 1

4

找到了解决方案...

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

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

如果当前未选择任何项目,则SelectedItem 为 null。如果用户浏览下拉菜单、选择项目或单击项目,则会将其更新为该项目。

看:

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

于 2010-04-27T12:18:31.450 回答