Introduction
WPF is usually advertised as having great graphics and animation capabilities. This is certainly true, as one of the most powerful features of WPF has nothing to do with graphics directly: data binding. This feature is so powerful, that a new way of thinking is required, especially for those coming from a more "traditional" background, such as WinForms or MFC.
Data binding is essentially simple: one property changes in an object – another property in another object reflects the change in some meaningful way. That's the short story. The longer story involves a lot of possible customizations, such as value converters and binding modes. Coupled with data templates, data binding provides a compelling and powerful way to visualize and interact with data.
A new pattern has emerged for WPF (and Silverlight) applications because of the power of data binding, called Model View View-Model (MVVM); it's based on similar ideas from patterns known as Model View Controller (MVC), and Model...