使用DataAnnotation进行Silverlight验证

时间:2011-01-25 13:33:07

标签: silverlight silverlight-4.0

我的问题如下:

我有一个ChildWindow,它可以获得可编辑的实体。

我使用DataAnnotation属性来设置验证规则。

我的实体有一个Name属性,并在其上应用了必需属性。

如果我修改现有实体并清除绑定到Name属性的文本框 我收到一个验证错误,名称字段是必需的。

但是当我添加一个新实体并且Name属性为null时,验证不起作用。

我在类的构造函数中将Name属性设置为String.Empty,并在子窗口中显示验证错误显示在文本框中的实体。

什么是最佳解决方案?

我可以将显示子窗口的按钮设置为不启动验证吗?

在Asp.NET中,按钮控件的IsCausesValidation属性为false,该按钮不会触发验证。

感谢提前l,

1 个答案:

答案 0 :(得分:0)

你想要达到什么目的?在通过底层绑定对象上的setter实际设置属性之前,不会抛出验证异常。您是否希望在用户首次输入数据输入表单时显示所有验证错误?你在使用数据表吗?如果是这样,您应该能够在保存数据时验证整个表格,例如

    private void OKButton_Click(object sender, RoutedEventArgs e)
    {
        bool valid = MyDataForm.ValidateItem();
        if (valid)
        {
            MyDataForm.CommitEdit(true);
            this.DialogResult = true;
        }
    }