NotifyProperty 属性变化使用
新建一个类,继承INotifyPropertyChanged接口,注意继承的是一个接口,因此需要声明接口中的变量和函数,
public class Class1 : INotifyPropertyChanged
{
public Class1()
{
PropertyChanged += change; //委托加入执行函数
}
public event PropertyChangedEventHandler PropertyChanged;//声明接口中函数
private void OnPropertyChanged(string propertyName) //子函数中,调用委托。
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
private string _pchange;
public string pchange
{
get { return _pchange; }
set
{
_pchange = value;
OnPropertyChanged("pchange");//属性变化时,调用子函数
}
}
public void change(object sender, PropertyChangedEventArgs e)
{
Console.WriteLine("abc");
Console.ReadLine();
}
}
另一个函数新建类实例,改变类属性。
Class1 c = new Class1();
// c.PropertyChanged += change;
c.pchange = "1244";
执行结果:
即,当属性pchange改变为“1234“时,触发onpropertychanged函数,调用委托propertychanged委托,执行函数change,控制台输出“abc”。
很有用的功能,可以用于控制卡的状态改变,监控IO输入输出状态,监控当前界面按钮变化电机等等;或者内部状态位变化直接触发等。