2011-02-28 24 views
0

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

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

我在XAML中设置绑定,此XAML页面设置它的DataContext到MyViewModel

TextBlock Text="{Binding MyEntity.MyProperty}" 

例如当我从数据库中加载myEntity所并将其设置为MyViewModel,没有发生。我也打电话NotifyPropertyChanged("MyEntity");,它仍然没有发生。

我再试一次在MyViewModel

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

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

myProperty的创建和更改XAML绑定到myProperty的。这次我调用NotifyPropertyChanged(“MyProperty”);查看得到更新正确,当我输入不正确的数据时,它在MyEntity有ValidationErrors,但查看不会引发该错误(不显示红色边框)

我想知道如何才能获得使用MVVM的实体级验证。

+0

如果你能告诉我们这将有所帮助:A)MyEntity类B)XAML – 2011-03-04 14:55:37

回答

2


必须更改视图模型的定义,例如

public class MyViewModel:IDataErrorInfo 
{ 
} 

和实现接口。 此强制视图在错误时显示红色边框。
希望提供帮助。