2012-05-20 19 views
10

Her ikisinin de aynı olduğunu düşünüyorum, ancak bunları, aşağıdaki gibi tek bir dosyada buldum: raisepropertychanged için code.here kodu. PropertyChanged içinraisepropertychanged ve PropertyChanged arasındaki fark nedir?

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

kodu:

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 aralarındaki farkı açıklamak:

+0

Ben kodu anlamadı .. Daha açıklayabilir. –

cevap

8

PropertyChanged bir olaydır. Olayı yükseltmek için RaisePropertyChanged yöntemidir. Tabii

, kendi mülkiyet setter doğrudan olayını çağırmak, ancak işleyicisi boş değilse o zaman tek bir yerde bunu yapmak için ... her zaman kontrol etmek daha iyi olurdu.

+1

Olay, "Varlık" içinde var. Gerçekten bir fark yok. O, kendi sınıfında olayı ve çağıran yöntemi olabilir, ya da onun temel sınıfında olabilirdi. Hem olay hem de yöntem hala var. 'Varlık'' yalnızca olay işlemeyi' RaisePropertyChanged' – SimpleVar

+1

ile sarar. Ne arasında bir fark yok? Bir olay ve bir yöntem arasında? Elbette var! Ve yine, OP hiçbir zaman "Varlık" hakkında bir şey söylemedi ... –

+1

Elbette bir olay ve bir yöntem arasında bir fark var, ama durum böyle değil. Olay her iki şekilde de var ve yöntem de orada. Soru, "RaisePropertyChanged" ile normal PropertyChanged olayının arasındaki farkla ilgilidir. – SimpleVar

İlgili konular