Validation wpf mvvm验证失败

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

使用EF作为ORM使用mvvm学习wpf

在我的视图模型中,我具有以下属性:

//---------------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