This article examines a technique that makes it easy to use routed commands when the command execution logic resides in ViewModel objects. This approach cuts out the middleman; the code-behind file. It allows your ViewModel objects to be the direct recipient of routed command execution and status query notifications.
This article assumes that the reader is already familiar with data binding and templates, routed commands, attached properties, and the Model-View-ViewModel (MVVM) design pattern.