using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; namespace AddressBook_MVVMSample.Model { public class Person : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public Person() { } public Person(Person p) { this.Name = p.Name; this.Gender = p.Gender; this.PhoneNumber = p.PhoneNumber; this.Address = p.Address; } private string _name; public string Name { get { return _name; } set { _name = value; OnPropertyChanged(nameof(Name)); } } private bool _gender; public bool Gender { get { return _gender; } set { _gender = value; OnPropertyChanged(nameof(Gender)); } } private string _phoneNumber; public string PhoneNumber { get { return _phoneNumber; } set { _phoneNumber = value; OnPropertyChanged(nameof(PhoneNumber)); } } private string _address; public string Address { get { return _address; } set { _address = value; OnPropertyChanged(nameof(Address)); } } protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } }