C# 以编程方式强制对Silverlight UIElement(文本框)进行验证

C# 以编程方式强制对Silverlight UIElement(文本框)进行验证,c#,validation,c#-4.0,silverlight-3.0,uielement,C#,Validation,C# 4.0,Silverlight 3.0,Uielement,在Silverlight 3中是否有易于编程强制uielement进行验证的方法 我有一个文本框,我在其中绑定了一个Silverlight.Validators.RegexValidator,不幸的是,验证器会检查另一个uielements内容(组合框)。通常情况下,组合框上的onSelectionChanged—其所选项目在验证器中设置,当文本框内容更改(按键)时,它会对此进行检查 但是,当组合框选择更改时,我还希望再次运行相同的验证 我可以执行类似于myTextBox.Validate()的

在Silverlight 3中是否有易于编程强制uielement进行验证的方法

我有一个文本框,我在其中绑定了一个
Silverlight.Validators.RegexValidator
,不幸的是,验证器会检查另一个uielements内容(组合框)。通常情况下,组合框上的onSelectionChanged—其所选项目在验证器中设置,当文本框内容更改(按键)时,它会对此进行检查

但是,当组合框选择更改时,我还希望再次运行相同的验证

我可以执行类似于
myTextBox.Validate()的操作吗
或者类似于
myTextBox.KeyUp()
的东西来强制验证


谢谢

假设您的
TextBox.Text
属性绑定到某个属性,您可以强制绑定更新源代码,这将导致验证

var bindingExpression = textBox.GetBindingExpression(TextBox.TextProperty);
bindingExpression.UpdateSource();

假设您的
TextBox.Text
属性绑定到某个属性,您可以强制绑定更新源代码,这将导致验证

var bindingExpression = textBox.GetBindingExpression(TextBox.TextProperty);
bindingExpression.UpdateSource();
看起来您使用的是而不是内置的绑定验证系统。根据,您似乎应该在验证器对象上调用
Validate(true)

我强烈建议您尝试使用比简单地验证TextBox.Text on KeyUp更强大的。对于正则表达式验证,可以对TextBox绑定到的属性应用。设置绑定验证后,Ed Chapel的答案将适用于您。Silverlight也可能会自动重新查询验证,而您根本不需要处理SelectionChanged。

看起来您使用的是内置绑定验证系统,而不是内置绑定验证系统。根据,您似乎应该在验证器对象上调用
Validate(true)

我强烈建议您尝试使用比简单地验证TextBox.Text on KeyUp更强大的。对于正则表达式验证,可以对TextBox绑定到的属性应用。设置绑定验证后,Ed Chapel的答案将适用于您。Silverlight也可能会自动重新查询验证,而您根本不需要处理SelectionChanged