使用MVVM进行Silverlight实体级验证

时间:2011-02-28 12:12:45

标签: silverlight validation mvvm

我尝试通过创建公开该实体的ViewModel来采用实体级验证(对实体属性进行属性验证)。

public class MyViewModel
{
    public MyEntity MyEntity { get; set; }
}

我在xaml中设置绑定,这个xaml页面将其DataContext设置为MyViewModel的实例

TextBlock Text="{Binding MyEntity.MyProperty}"

当我从数据库加载MyEntity并将其设置为MyViewModel时,没有任何反应。我也打电话给NotifyPropertyChanged("MyEntity");但它仍然没有发生。

我在MyViewModel中创建MyProperty再次尝试

public class MyViewModel
{
    private MyEntity MyEntity { get; set; }

    public string MyProperty 
    {
        get { return this.MyEntity.MyProperty; }
        set { this.MyEntity.MyProperty = value; }
    }
}

将xaml更改为绑定到MyProperty。这次我调用NotifyPropertyChanged(“MyProperty”);查看获取更新正确,当我输入不正确的数据时,它在MyEntity上有ValidationErrors但View不会引发该错误(不显示红色边框)

我想知道如何使用MVVM进行实体级验证。

1 个答案:

答案 0 :(得分:2)

您好
您必须更改ViewModel的定义,例如

public class MyViewModel:IDataErrorInfo
{
}

并实现接口。 此力显示错误时显示红色边框 希望有所帮助。