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
posted @ 2022-11-25 16:37  JohnYang819  阅读(51)  评论(0编辑  收藏  举报