2010-11-03 88 views
0

我已經有一個組合框和文本框的Silverlight頁面。文本框的Text屬性和組合框的SelectedValue屬性都綁定到視圖模型上的相同屬性。組合框的ItemsSource提供了有限的值選擇:30,45,60,90。Silverlight,綁定組合框和文本框到相同的屬性

當在組合框中選擇一個值時,文本框將反映新值。在文本框中輸入值時,只要組合框中有匹配值,組合框就會更改其選擇以反映新值。

當在文本框中輸入一個值並且組合框中沒有匹配的值時,組合框上的綁定就會中斷並且不顯示任何內容。更改組合框不再更新視圖模型或文本框。

對於如何使組合框和文本框綁定到相同的屬性,即使輸入到文本框中的值在組合框中不總是具有匹配值,是否有任何建議?

回答

1

您可能需要分開ViewModel(SelectedItem和Text)中的值。然後在SelectedItem的setter中,更新ViewModel中的Text屬性。在Text屬性的setter中,查看該值是否存在於comboBox的itemsSource中,如果是,則更新ViewModel中的SelectedItem。

不知道這是否會與你的約束,但這就是我會這樣做。

+0

謝謝亞當。這確實是我們最終做的。我們將文本框綁定到一個屬性,將組合框綁定到不同的屬性。在SelectedValue的set訪問器中,我們將值推入文本屬性中。在SelectedValue的get訪問器中,我們檢查填充ItemsSource的集合以確定要返回哪個值(我們爲沒有匹配添加了一個項目)。偉大的建議。非常感謝你花時間陪伴。 – user326502 2010-11-03 17:00:47

相關問題