我尝试通过创建公开该实体的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进行实体级验证。
答案 0 :(得分:2)
您好
您必须更改ViewModel的定义,例如
public class MyViewModel:IDataErrorInfo
{
}
并实现接口。 此力显示错误时显示红色边框 希望有所帮助。