- static class ExtensionMethods
- {
- public static void Raise<TValue>(this PropertyChangedEventHandler handler, Expression<Func<TValue>> propertySelector)
- {
- var memberExpression = propertySelector.Body as MemberExpression;
- if (handler == null || memberExpression == null)
- {
- return;
- }
- var sender = ((ConstantExpression)memberExpression.Expression).Value;
- handler(sender, new PropertyChangedEventArgs(memberExpression.Member.Name));
- }
- }
Use this as an extension method like this on a class that implements INotifyPropertyChanged
- class SomeClass : INotifyPropertyChanged
- {
- private string _someProperty;
- public string SomeProperty
- {
- get
- {
- return this._someProperty;
- }
- set
- {
- if (value != this._someProperty)
- {
- this._someProperty = value;
- this.PropertyChanged.Raise(() => this.SomeProperty);
- }
- }
- }
- public event PropertyChangedEventHandler PropertyChanged;
- }
Good luck
-Kristof