2012-05-20 18 views
10

Penso che entrambi siano uguali, ma ho trovato l'uso di essi in un solo file, come ad esempio il codice code.here per raisepropertychanged.qual è la differenza tra raisepropertychanged e PropertyChanged?

public decimal Amount 
     { 
      get 
      { 
       return _amount; 
      } 
      set 
      { 
       _amount = value; 
       RaisePropertyChanged("Amount"); 
      } 
     } 

qui codice per PropertyChanged:

public event PropertyChangedEventHandler PropertyChanged; 

    private void RaisePropertyChanged(string propertyName) 
    { 
     // take a copy to prevent thread issues 
     PropertyChangedEventHandler handler = PropertyChanged; 
     if (handler != null) 
     { 
      handler(this, new PropertyChangedEventArgs(propertyName)); 
     } 
    } 

plz spiegare differenza tra loro:

+0

Non ho capito il codice .. potresti spiegarci di più. –

risposta

8

PropertyChanged è un evento. RaisePropertyChanged è il metodo utilizzato per aumentare l'evento.

Ovviamente, è possibile richiamare l'evento direttamente dal proprio setter della proprietà, ma è necessario verificare ogni volta se il gestore non è nullo ... meglio farlo in un unico punto.

+1

L'evento esiste in "Entity'. Non c'è davvero alcuna differenza. Poteva avere l'evento e il metodo invocante nella sua classe, oppure poteva averlo nella sua classe base. L'evento e il metodo esistono ancora. 'Entity' semplicemente avvolge la gestione degli eventi con' RaisePropertyChanged' – SimpleVar

+1

Non c'è differenza tra cosa? Tra un evento e un metodo? Certo che c'è! E ancora, l'OP non ha mai detto nulla su Entity' ... –

+1

Ovviamente c'è una differenza tra un evento e un metodo, ma questo non è il caso. L'evento è lì in entrambi i modi, e il metodo è anche lì. La domanda riguarda la differenza tra USING 'RaisePropertyChanged' e l'evento PropertyChanged regolare. – SimpleVar

Problemi correlati