Validation wpf mvvm验证失败
使用EF作为ORM使用mvvm学习wpf 在我的视图模型中,我具有以下属性:Validation wpf mvvm验证失败,validation,mvvm,Validation,Mvvm,使用EF作为ORM使用mvvm学习wpf 在我的视图模型中,我具有以下属性: //---------------ClientNew public const string ClientNewConst = "ClientNew"; private TBL_CLIENT _clientNew = new TBL_CLIENT(); public TBL_CLIENT ClientNew { get
//---------------ClientNew
public const string ClientNewConst = "ClientNew";
private TBL_CLIENT _clientNew = new TBL_CLIENT();
public TBL_CLIENT ClientNew
{
get
{
return _clientNew;
}
set
{
if (_clientNew == value)
{
return;
}
var oldValue = _clientNew;
_clientNew = value;
// Update bindings, no broadcast
RaisePropertyChanged(ClientNewConst);
}
}
其中TBL_CLIENT-是一个实体对象,它在DB中镜像TBL_CLIENT表
现在,在我看来,我只为客户的名字绑定了一堆文本框,如本例所示:
<TextBox Style="{StaticResource ResourceKey=entryFormTextBox}"
Text="{Binding ClientNew.CLIENT_FIRST_NAME,
ValidatesOnDataErrors=True,
NotifyOnValidationError=true,
ValidatesOnExceptions=True,
UpdateSourceTrigger=LostFocus}"
Grid.Column="1"
Grid.Row="1" />
那么,问题。。在我的案例中,我没有在ModelView中为每个实体对象定义单独的属性,但该属性接受整个实体对象,如何使用idataerrorinfo实现尽可能简单的验证
提前感谢,,
Alex您可以查看的BookLibrary示例应用程序。它直接在实体上定义验证规则。请查看BookLibrary.Domain/Book.cs。您可以查看的BookLibrary示例应用程序。它直接在实体上定义验证规则。请查看BookLibrary.Domain/Book.cs
#region IDataErrorInfo Members
string IDataErrorInfo.Error
{
get { throw new NotImplementedException(); }
}
string IDataErrorInfo.this[string columnName]
{
get
{
if (string.IsNullOrEmpty("ClientNew.CLIENT_FIRST_NAME"))
{
return "Client Name is required";
}
return null;
}
}
#endregion