In the last chapter you started to get your teeth into some real WPF programming projects using XAML and C#. Using XAML to define an application’s interface declarative certainly sets WPF programming apart from older, code-only platforms. But as cool as declarative programming is, it’s perfectly possible to ignore XAML completely and write a WPF application completely in C# (but I can’t imagine why you’d want to).
The same isn’t true of the subject of this chapter: dependency properties. Take a look at the WPF class hierarchy from the last chapter. Every WPF class descends from
DependencyObject; in a sense that’s what makes a class part of WPF. And what does
DependencyObject do? It implements the dependency property ...