我在silverlight中有一个自动完成框,它绑定到一个集合。它工作得很好。我只想要它,这样用户就不能输入任何不在集合中的值。
例如:集合包含一个值"Head“。如果用户输入Headx或其他值,则应触发验证。
该怎么做呢?
问候
Arun
发布于 2013-02-09 22:14:00
你应该能够改变你的绑定来实现这一点。
默认情况下,文本属性通常会在控件失去焦点时更新绑定源。通过设置绑定以更新PropertyChanged上的源代码,您可以在每次击键时实现验证。
Text属性上的绑定将如下所示
Text="{Binding MyProperty, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"然后,在您的属性设置器中,您可以在认为合适的时候抛出一个ValidationException,或者您可以实现一个验证接口(INotifyDataErrorInfo或IDataErrorInfo)并以这种方式处理它。
This article is a good source of info about the complexities of data Binding
https://stackoverflow.com/questions/14786668
复制相似问题