2012-05-20 26 views
10

我認爲兩者都是相同的,但我發現它們只在一個文件中使用,例如下面的code.here代碼爲raisepropertychanged。爲的PropertyChangedraisepropertychanged和PropertyChanged有什麼區別?

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

這裏代碼:

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它們之間的差別解釋:

+0

我不明白代碼..你能解釋更多嗎? –

回答

8

PropertyChanged是一個事件。 RaisePropertyChanged是用於提高事件的方法。

當然,你可以直接從你的屬性setter調用事件,但是你必須每次檢查處理器是否爲空......最好在一個地方完成。

+1

該事件存在於「實體」中。真的沒有區別。他可以在自己的班級中舉辦活動和調用方法,或者他可以在他的基礎班級中進行。事件和方法都依然存在。 '實體'只是用'RaisePropertyChanged'封裝事件處理 – SimpleVar

+1

有什麼區別?事件和方法之間?當然有!再說一次,OP從來沒有對「實體」說過什麼...... –

+1

當然事件和方法之間有區別,但事實並非如此。事件是有的,方法也在那裏。問題是關於USING'RaisePropertyChanged'和普通的PropertyChanged事件之間的區別。 – SimpleVar