Language: C#
PropertyChangedBase class to do INotifyPropertyChanged without magic strings for Property Names
namespace Nowcom.Quicksilver { using System.ComponentModel; using System.Linq.Expressions; using System; public abstract class PropertyChangedBase : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public void NotifyPropertyChanged(string propertyName) { var handler = PropertyChanged; if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); } public void NotifyPropertyChanged<TProperty>(Expression<Func<TProperty>> property) { var lambda = (LambdaExpression)property; MemberExpression memberExpression; if (lambda.Body is UnaryExpression) { var unaryExpression = (UnaryExpression)lambda.Body; memberExpression = (MemberExpression)unaryExpression.Operand; } else memberExpression = (MemberExpression)lambda.Body; NotifyPropertyChanged(memberExpression.Member.Name); } } } //usage public class Person: PropertyChangedBase { private string _FullName; public string FullName { get { return _FullName; } set { _FullName = value; NotifyPropertyChanged(() => FullName); } } }
Tags:
Report Abuse
Subscribe
Discuss
What's new
What is it
New Snippet
Recent Snippets
My Snippets
Web Code
Search


Forgot to mention that I got this from Rob Eisenberg in his Build your Own MVVM Framework presentation at Mix 2010