使用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

猜你喜欢

转载自blog.csdn.net/weixin_34248258/article/details/93409833