2010-04-27 69 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