INotifyPropertyChanged vs. DependencyProperty in ViewModel
According to the WPF performance guide, DependencyObjects definitely perform better than POCOs that implement INotifyPropertyChanged:
http://msdn.microsoft.com/en-us/library/bb613546.aspx
Kent wrote an interesting blog about this topic: View Models: POCOs versus DependencyObjects.
Short summary:
- DependencyObjects are not marked as serializable
- The DependencyObject class overrides and seals the Equals() and GetHashCode() methods
- A DependencyObject has thread affinity – it can only be accessed on the thread on which it was created
I prefer the POCO approach. A base class for PresentationModel (aka ViewModel) which implements INotifyPropertyChanged interface can be found here: http://compositeextensions.codeplex.com