using System.Collections.Generic; using System.ComponentModel; using System.Runtime.CompilerServices; namespace VirtualSrm.Common.Entity { /// /// 此类用于属性改变时的基础类 /// public class BindableBase : INotifyPropertyChanged { protected void SetProperty(ref T prop, T value, [CallerMemberName] string callerName = "") { if (!EqualityComparer.Default.Equals(prop, value)) { prop = value; OnPropertyChanged(callerName); } } protected virtual void OnPropertyChanged(string propertyName) { var propertyChanged = PropertyChanged; if (propertyChanged != null) { propertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } public event PropertyChangedEventHandler PropertyChanged; } }