是否有一个易于以编程方式强制uielement在Silverlight 3中进行验证?
我有一个文本框,其中我绑定了Silverlight.Validators.RegexValidator
,遗憾的是验证器检查了另一个uielements内容(组合框)。通常onSelectionChanged在该组合框上 - 它的选定项目在验证器中设置,当文本框内容发生变化(按键)时,它会对此进行检查。
但我还想在组合框选择改变时再次运行相同的验证
我可以执行类似myTextBox.Validate();
甚至类似myTextBox.KeyUp()
的操作来强制验证吗?
由于
答案 0 :(得分:1)
假设您的TextBox.Text
属性绑定到某个属性,您可以强制绑定更新源,这将导致验证。
var bindingExpression = textBox.GetBindingExpression(TextBox.TextProperty);
bindingExpression.UpdateSource();
答案 1 :(得分:0)
您似乎正在使用this toolkit而不是内置的绑定验证系统。根据{{3}},您似乎应该在验证程序对象上调用Validate(true)
。
我强烈建议您尝试转移到ValidatorBase,这比仅仅验证KeyUp上的TextBox.Text要强大得多。对于正则表达式验证,您可以将official Silverlight data validation support应用于TextBox绑定的属性。设置绑定验证后, Ed Chapel 的答案将对您有用。 Silverlight也可能会自动重新查询验证,您根本不需要处理SelectionChanged。