Eu sinto que a comunidade MVVM se tornou excessivamente zelosa como os programadores de OO nos anos 90 - é um nome impróprio que MVVM é sinônimo de código. Da minha pergunta fechada StackOverflow :
Muitas vezes me deparo com posts aqui sobre alguém tentando fazer o equivalente em XAML em vez do código por trás. A única razão é que eles querem manter o código por trás de 'limpo'. Corrija-me se estiver errado, mas não é o caso:
O XAML também é compilado - no BAML - e, em tempo de execução, deve ser analisado no código de qualquer maneira. O XAML pode potencialmente ter mais erros de tempo de execução, pois eles não serão detectados pelo compilador no momento da compilação - de grafias incorretas - esses erros também são mais difíceis de depurar. Já existe um código por trás - goste ou não InitializeComponent (); precisa ser executado e o arquivo .gics contém um monte de código, embora possa estar oculto. É puramente psicológico? Eu suspeito que são os desenvolvedores que vêm de um plano de fundo da Web e gostam de marcação em oposição ao código.
EDIT: eu não proponho código para trás em vez de XAML - use ambos - prefiro fazer minha ligação em XAML também - sou contra fazer todos os esforços para evitar escrever código por trás de esp em um aplicativo WPF - deve ser uma fusão de ambos para tirar o máximo proveito disso.
ATUALIZAÇÃO: Nem sequer é idéia da Microsoft; todos os exemplos no MSDN mostram como você pode fazer isso em ambos.