【问题标题】:Programmatically force validation on Silverlight 3 UIElement (Textbox)以编程方式强制验证 Silverlight 3 UIElement(文本框)
【发布时间】:2011-06-23 14:59:38
【问题描述】:

在 Silverlight 3 中是否可以轻松以编程方式强制 uielement 进行验证?

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

但我也想在组合框选择更改时再次运行相同的验证

我可以做类似myTextBox.Validate(); 甚至类似myTextBox.KeyUp() 的事情来强制验证吗?

谢谢

【问题讨论】:

    标签: c# validation c#-4.0 silverlight-3.0 uielement


    【解决方案1】:

    假设您的 TextBox.Text 属性绑定到某个属性,您可以强制绑定更新源,这应该会导致验证。

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

    【讨论】:

      【解决方案2】:

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

      我强烈建议您尝试转到official Silverlight data validation support,它比简单地在 KeyUp 上验证 TextBox.Text 更可靠。对于正则表达式验证,您可以将 RegularExpressionAttribute 应用于 TextBox 绑定到的属性。设置绑定验证后,Ed Chapel 的答案将为您服务。 Silverlight 也可能会自动重新查询验证,而您根本不需要处理 SelectionChanged。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-03
        • 1970-01-01
        • 2021-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多