using System;
using System.ComponentModel;
using System.Linq.Expressions;
using System.Reflection;
namespace System
{
/// <summary>
/// 实现了属性更改通知的基类
/// </summary>
public class ObservableObject : System.ComponentModel.INotifyPropertyChanged
{
/// <summary>
/// 属性值变化时发生
/// </summary>
/// <param name="propertyName"></param>
protected virtual void RaisePropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
this.PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
/// <summary>
/// 属性值变化时发生
/// </summary>
/// <param name="propertyName"></param>
protected virtual void RaisePropertyChanged<T>(Expression<Func<T>> propertyExpression)
{
var propertyName = (propertyExpression.Body as MemberExpression).Member.Name;
this.RaisePropertyChanged(propertyName);
}
public virtual event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
}
}