/* * author : singba singba@163.com * version : 20161221 * source : AF.Core * license : free use or modify * description : 通用类型基类 */ using System; using System.Linq.Expressions; namespace ComeCapture.Models { /// /// singba:20120807 /// 这个基类只作为INotifyPropertyChanged的实现,不再是Entity的基类 /// public class EntityBase : System.ComponentModel.INotifyPropertyChanged { #region INotifyPropertyChanged Members public virtual event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; protected virtual void RaisePropertyChanged(string name) { if (PropertyChanged != null) { // ReSharper disable once PolymorphicFieldLikeEventInvocation PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(name)); } } protected virtual void RaisePropertyChanged(Expression> property) { LambdaExpression lambda = property; MemberExpression memberExpression; if (lambda.Body is UnaryExpression) { UnaryExpression unaryExpression = (UnaryExpression)lambda.Body; memberExpression = (MemberExpression)unaryExpression.Operand; } else { memberExpression = (MemberExpression)lambda.Body; } RaisePropertyChanged(memberExpression.Member.Name); } #endregion INotifyPropertyChanged Members } }