使用INotifyPropertyChanged监听属性变化

有时我们需要以异步的方式监控对象属性的变化,并根据变化作出相应的处理。通过将被监控类实现INotifyPropertyChanged接口的方式可以简洁的达到这一目的。

ContractedBlock.gif ExpandedBlockStart.gif Code
public class 被监控类 : INotifyPropertyChanged
{
  
//声明事件
  public event PropertyChangedEventHandler PropertyChanged;
  
//定义用于触发事件的方法
  private void NotifyPropertyChanged(string info)
  {
    
if(PropertyChanged != null){
      
//触发事件
      PropertyChanged(thisnew PropertyChangedEventArgs(info));
    }
  }
  
//在属性set时,调用触发事件的方法
  public string Property1{
    
set {
      
if(value != this._property1){NotifyPropertyChanged("info");}
    }
  }
}

public class 监控类{
  
//定义事件处理方法
  static void DoItWhenPropertyChanged(object sender, PropertyChangedEventArgs e){}
  
public static void Main(string[] args){
    
//添加事件的处理方法
    被监控对象.PropertyChanged +=
        
new PropertyChangedEventHandler(DoItWhenPropertyChanged);
  }
}

转载于:https://www.cnblogs.com/crossingdawn/archive/2009/07/01/1514785.html

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值