When I first started working with WPF as an alternative to Windows Forms, I welcomed the concept of a better separation of interface from logic. While I didn't really think in terms of skins or themes, one question almost immediately popped into my head:
How can I design a single, relatively simple GIS field application, that can be configured to look completely different, in order to accomplish different tasks?
My first attempt didn't really offer the flexibility I wanted. Then I started studying MVVM design, which offered the flexibility I wanted, but presented a whole new series of challenges. Finally, I arrived at two ideas: 1) extending the MapView using Behaviors, and 2) implementing an extensible view model that can accommodate views of any composition. This presentation describes the architecture I developed.
I'm happy with this year's presentation. After last year's fiasco, I successfully avoided the urge to change my demo at the last minute, and pretty much stuck to the script. The slides, example code, and documentation may be downloaded here: