C# INotifyPropertyChanged Small Demo
public class PChangeTest:INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propName)
{
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propName));
}
private int _num;
public int Num
{
get { return _num; }
set
{
this._num = value;
OnPropertyChanged("Num");
}
}
private string _name;
public string Name
{
get { return _name; }
set
{
_name = value;
OnPropertyChanged("Name");
}
}
}
class Program
{
public static void DealEventA(object sender, PropertyChangedEventArgs e)
{
Console.WriteLine($"Property {e.PropertyName} is changed!");
Console.WriteLine("This is Called in DealEventA");
}
public static void DealEventB(object sender, PropertyChangedEventArgs e)
{
Console.WriteLine($"Again,I notice Property {e.PropertyName} is changed!");
Console.WriteLine("This is Called in DealEventB");
}
static void Main()
{
PChangeTest pc = new PChangeTest();
pc.PropertyChanged += DealEventA;
pc.PropertyChanged += DealEventB;
pc.Num = 3;
pc.Name = "JohnYang";
}
}
output:
Property Num is changed!
This is Called in DealEventA
Again,I notice Property Num is changed!
This is Called in DealEventB
Property Name is changed!
This is Called in DealEventA
Again,I notice Property Name is changed!
This is Called in DealEventB
#####
愿你一寸一寸地攻城略地,一点一点地焕然一新
#####