using System;
using System.ComponentModel;
using System.Linq.Expressions;
using System.Runtime.CompilerServices;
namespace TranslateTool.ViewModel
{
///
/// Implementation of INotifyPropertyChanged
///
public abstract class NotificationObject : INotifyPropertyChanged
{
///
/// Property change handler
///
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName]string propertyName = null)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
protected void OnPropertyChanged(Expression> propertyExpression)
{
var propertyName = GetPropertyName(propertyExpression);
OnPropertyChanged(propertyName);
}
protected void OnPropertyChanged(params Expression>[] propertyExpressions)
{
foreach (var expression in propertyExpressions)
{
OnPropertyChanged