2010-11-03 89 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

相关问题