andrew4582

WPF Notification Object

Aug 14th, 2013
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.93 KB | None | 0 0
  1. using System;
  2. using System.ComponentModel;
  3. using System.Linq.Expressions;
  4.  
  5. namespace UI.Helpers
  6. {
  7.     public class NotificationObject : INotifyPropertyChanged
  8.     {
  9.         protected void RaisePropertyChanged<T>(Expression<Func<T>> action)
  10.         {
  11.             var propertyName = GetPropertyName(action);
  12.             RaisePropertyChanged(propertyName);
  13.         }
  14.         protected void OnPropertyChanged<T>(Expression<Func<T>> action)
  15.         {
  16.             var propertyName = GetPropertyName(action);
  17.             RaisePropertyChanged(propertyName);
  18.         }
  19.         private static string GetPropertyName<T>(Expression<Func<T>> action)
  20.         {
  21.             var expression = (MemberExpression)action.Body;
  22.             var propertyName = expression.Member.Name;
  23.             return propertyName;
  24.         }
  25.  
  26.         private void RaisePropertyChanged(string propertyName)
  27.         {
  28.             if (PropertyChanged != null)
  29.                 PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
  30.         }
  31.  
  32.         public event PropertyChangedEventHandler PropertyChanged;
  33.     }
  34. }
Advertisement
Add Comment
Please, Sign In to add comment