2012-05-20 7 views
10

Creo que ambos son los mismos, pero encontré el uso de ellos en un solo archivo, como el siguiente código. Código de la propiedad para raisepropertychanged.¿cuál es la diferencia entre raisepropertychanged y PropertyChanged?

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

aquí código para 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 explicar diferencia entre ellos:

+0

No entendí el código ... ¿podría explicarme más? –

Respuesta

8

PropertyChanged es un evento. RaisePropertyChanged es el método utilizado para plantear el evento.

Por supuesto, puede invocar el evento directamente desde el organizador de su propiedad, pero luego debe verificar siempre si el controlador no es nulo ... es mejor hacerlo en un solo lugar.

+1

El evento existe en 'Entity'. Realmente no hay diferencia. Podría tener el evento y el método de invocación en su propia clase, o podría tenerlo en su clase base. Tanto el evento como el método aún existen. 'Entity' simplemente ajusta el manejo del evento con' RaisePropertyChanged' – SimpleVar

+1

¿No hay diferencia entre qué? Entre un evento y un método? Por supuesto que hay! Y de nuevo, el OP nunca dijo nada acerca de 'Entity' ... –

+1

Por supuesto que hay una diferencia entre un evento y un método, pero este no es el caso. El evento está allí de cualquier manera, y el método está allí también. La pregunta es sobre la diferencia entre USAR 'RaisePropertyChanged' y el evento regular PropertyChanged. – SimpleVar

Cuestiones relacionadas