Silverlight 4 TextBox未验证

时间:2011-03-11 17:42:37

标签: c# silverlight silverlight-4.0

我们有一个利用MVVM架构的SL 4应用程序,以及对象和UI控件之间非常干净的数据绑定。我们创建了一个自定义ValidationAttribute,用于装饰我们的域类并提供基于数据存储的字段级验证。如果我们使用这些自定义验证属性并使用Validator类手动验证我们的类,如下所示:

        bool _isValid = Validator.TryValidateObject(this.DataContext, new ValidationContext(this.DataContext,null,null), results,true);

然后使用自定义验证属性,一切正常。

我们的问题是,当简单地将数据输入绑定到用这些验证属性之一装饰的字段的文本框时,我们看不到立即的验证反馈(通过工具箱的默认红色边框和工具提示样式)。

控件未在失去焦点时验证的示例XAML片段是:

        <TextBox Text="{Binding AssetID,Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnDataErrors=true}"></TextBox>

有关我们忽略的内容或我们可以采取哪些措施来强制SL在失去焦点时验证文本框而不是等到页面级别保存完成(此时我们只是使用Validator类验证)?

1 个答案:

答案 0 :(得分:0)

您必须验证您绑定的属性的属性设置器中的值。

你可以在这篇文章中看到我的意思。 http://msdn.microsoft.com/en-us/magazine/ee335695.aspx

你能发布你绑定的属性,特别是setter代码吗?