2011-03-17 7 views
2

apprentissage wpf avec mvvm (en utilisant EF comme ORM).échec de la validation wpf mvvm

Dans mon modèle de vue que j'ai la propriété:

//---------------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); 
      } 
     } 

où TBL_CLIENT - est un entittyobject qui reflète table TBL_CLIENT dans DB

maintenant, à mon avis je lie groupe de zones de texte comme celui-ci (par exemple uniquement pour le prénom du 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" /> 

J'ai essayé d'utiliser différents déclencheurs pour updatesource .. encore Teh validation ne fonctionne pas.

oh, j'ai mis en œuvre IDataErrorInfo interface dans mon viewmodel (mais il frappe jamais ..)

#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 

donc, question .. comment puis-je mettre en œuvre la simple validation possible en utilisant IDataErrorInfo pour mon cas , où je n'ai pas la propriété distincte définie dans ModelView pour chacun de l'objet entité, mais la propriété prend l'objet entité entière?

merci à l'avance, Alex

Répondre

0

Vous pourriez jeter un oeil à l'exemple d'application BookLibrary du WPF Application Framework (WAF). Il définit les règles de validation directement à l'entité. S'il vous plaît jeter un oeil à "BookLibrary.Domain/Book.cs".

+0

merci, va vérifier. – HotFrost