using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Linq.Expressions; namespace RichCreator.ViewModels { public class NotificationObject : INotifyPropertyChanged { protected void RaisePropertyChanged(Expression> action) { var propertyName = GetPropertyName(action); RaisePropertyChanged(propertyName); } private static string GetPropertyName(Expression> action) { var expression = (MemberExpression)action.Body; var propertyName = expression.Member.Name; return propertyName; } protected void RaisePropertyChanged(string propertyName) { if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } public event PropertyChangedEventHandler PropertyChanged; } }