Skip to content

Instantly share code, notes, and snippets.

@JPVenson
Created September 20, 2017 14:37
Show Gist options
  • Save JPVenson/e95f04ed3734bd1a04af1ff04b8c2368 to your computer and use it in GitHub Desktop.
Save JPVenson/e95f04ed3734bd1a04af1ff04b8c2368 to your computer and use it in GitHub Desktop.
public abstract class NotifyPropertyChanged
{
public string GetPropertyName(Expression<Func<object>> propertyExpression)
{
var unaryExpression = propertyExpression.Body as UnaryExpression;
var memberExpression = unaryExpression == null ? (MemberExpression)propertyExpression.Body : (MemberExpression)unaryExpression.Operand;
var propertyName = memberExpression.Member.Name;
return propertyName;
}
}
class Foo
{
public bool Enabled { get; set; }
}
class Baa : NotifyPropertyChanged
{
public Foo Model { get; set; }
public string StackOverflow() {
return GetPropertyName(() => Model.Enabled);
}
}
new Baa().StackOverflow()
"Enabled"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment