One problem of the INotifyPropertyChanged aspect concerns automatic notification of read-only properties which depend on other properties.
Indeed, say you have this class, on which the aspect is applied:
[NotifyPropertyChanged]
public class Test
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string FullName { get { return FirstName + " " + LastName; } }
}
If you change the values of FirstName or LastName, the OnPropertyChanged event will be fired, and the view will be able to display the new values of the properties. But if a control of your view is bound to the FullName property, it won't be updated. A solution would be to declare FullName as an automatic property, and update it in the setters of FirstName and LastName. Not very practical.
In this article, I will show you how to extend the aspect, in order to make it fire the event for dependent properties when a "parent" property is modified.