using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; namespace 垂直剖面动态观测系统.Common { public class NotifyBase : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; //[CallerMemberName]string propName = "" 设置一个默认值 提高容错性 public void DoNotify([CallerMemberName] string propName = "") { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propName)); } /// /// Sets property if it does not equal existing value. Notifies listeners if change occurs. /// /// Type of property. /// The property's backing field. /// The new value. /// Name of the property used to notify listeners. This /// value is optional and can be provided automatically when invoked from compilers /// that support . protected virtual bool SetProperty(ref T member, T value, [CallerMemberName] string? propertyName = null) { if (EqualityComparer.Default.Equals(member, value)) { return false; } member = value; DoNotify(propertyName); return true; } } }