WPF provides a new property system, which extends the functionality of the default CLR (Common Language Runtime) property and is known as a dependency property. A normal CLR property is a wrapper to its getter and setter implementation of its private variable; whereas a dependency property extends it to provide you a way to compute the value based on the value of other inputs.
In addition to this, it also provides you with a way to do self-contained validation, set default values, monitor changes to its value, and do a callback.
To work with a dependency property, you must derive the class from DependencyObject, which will work as the observer. It holds the new property system defined within the DependencyObject class:
A CLR property looks like this:
private string m_AuthorName; public string AuthorName { get { return m_AuthorName; } set...