2012-05-20 28 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