+ -
当前位置:首页 → 问答吧 → 解释一下代码,不懂,尤其这个PropertyChanged(this, new PropertyChangedEventArgs(property));

解释一下代码,不懂,尤其这个PropertyChanged(this, new PropertyChangedEventArgs(property));

时间:2011-12-06

来源:互联网

private string cityPinyin;//城市拼音
public string CityPinyin  
{  
get  
{  
return cityPinyin;  
}  
set  
{  
if (value != cityPinyin)  
{  
cityPinyin = value;  
NotifyPropertyChanged("CityPinyin");  
}  
}  
}

public event PropertyChangedEventHandler PropertyChanged;

private void NotifyPropertyChanged(string property)  
{  
if (PropertyChanged != null)  
{  
PropertyChanged(this, new PropertyChangedEventArgs(property));  
}  
}

作者: sun_da_peng   发布时间: 2011-12-06

参数this,是指对象本身,PropertyChangedEventArgs是事件参数,继承自EventArgs

这段代码的意思是调用一个事件.
所谓事件实际是Delegate委托.
最常见的Delegate委托.是Button.Click事件.
 private void button1_Click(object sender, EventArgs e)
{}
button1_Click(this, new EventArgs());
这个事件与你提到的本质一样.

作者: taomanman   发布时间: 2011-12-06

事件通知机制

在属性被更改的时候触发

作者: Sandy945   发布时间: 2011-12-06

引用 1 楼 taomanman 的回复:
参数this,是指对象本身,PropertyChangedEventArgs是事件参数,继承自EventArgs

这段代码的意思是调用一个事件.
所谓事件实际是Delegate委托.
最常见的Delegate委托.是Button.Click事件.
private void button1_Click(object sender, EventArgs e)
{}
button1_C……

参数列表不是在声明的时候就确定了吗

作者: sun_da_peng   发布时间: 2011-12-06

你这个是用于安全验证的,首先要继承安全验证接口,其实是一个规范。

抛开那些不说,这个是一个委托delegate。
调用这个NotifyPropertyChanged这个方法就会触发PropertyChanged事件,
PropertyChanged(this, new PropertyChangedEventArgs(property)); //方法中已经注册。

if (value != cityPinyin)  
{  
cityPinyin = value;  
NotifyPropertyChanged("CityPinyin");  
} 不满足这个条件时,执行。

作者: Tsapi   发布时间: 2011-12-06

热门下载

更多