| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | using System.ComponentModel;using System.Runtime.CompilerServices;using System.Windows;using System.Windows.Controls;namespace EPD.Data{    public class NotifyObject : INotifyPropertyChanged    {        public event PropertyChangedEventHandler PropertyChanged;        protected void Set<T>(ref T property, T value, [CallerMemberName] string memberName = "")        {            property = value;            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(memberName));        }        public void RaisePropertyChanged(string memberName)        {            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(memberName));        }    }    public class NotifyControl : UserControl, INotifyPropertyChanged    {        public event PropertyChangedEventHandler PropertyChanged;        public void Set<T>(ref T field, T newValue, [CallerMemberName] string propertyName = "")        {            field = newValue;            RaisePropertyChanged(propertyName);        }        public void RaisePropertyChanged(string memberName)        {            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(memberName));        }    }    public class NotifyWindow : Window, INotifyPropertyChanged    {        public event PropertyChangedEventHandler PropertyChanged;        public void Set<T>(ref T field, T newValue, [CallerMemberName] string propertyName = "")        {            field = newValue;            RaisePropertyChanged(propertyName);        }        public void RaisePropertyChanged(string memberName)        {            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(memberName));        }    }}
 |