using System;
using System.ComponentModel;
using System.Linq.Expressions;
using System.Runtime.Serialization;
namespace FWindSoft.MVVM
{
[DataContract]
public abstract class BasePropertyChanged : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged = (sender, e) => { };
///
/// 提交变更
///
/// 变更属性名称
protected void RaisePropertyChanged(String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
protected void RaisePropertyChanged(Expression> propertyExpression)
{
if (null != propertyExpression)
{
var memberExpression = propertyExpression.Body as MemberExpression;
if (memberExpression != null)
if(this.PropertyChanged!=null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(memberExpression.Member.Name));
}
}
else
{
throw new Exception();
}
}
}
}