Sento che la community MVVM è diventata eccessivamente zelante come i programmatori OO negli anni '90 - è un termine improprio MVVM non è sinonimo di codice. Dalla mia domanda StackOverflow chiusa :
Molte volte ho trovato post su qualcuno che cercava di fare l'equivalente in XAML anziché codice dietro. La loro unica ragione è che vogliono mantenere il loro codice dietro "pulito". Correggimi se sbaglio, ma non è questo il caso:
Anche XAML è compilato - in BAML - quindi a runtime deve essere analizzato nel codice comunque. XAML può potenzialmente avere più bug di runtime in quanto non verranno raccolti dal compilatore in fase di compilazione - a partire da errori di ortografia - questi bug sono anche più difficili da debugare. C'è già il codice dietro - piaccia o no InitializeComponent (); deve essere eseguito e il file .g.i.cs che contiene contiene un po 'di codice anche se potrebbe essere nascosto. È puramente psicologico? Sospetto che si tratti di sviluppatori che provengono da uno sfondo web e apprezzano il markup piuttosto che il codice.
EDIT: Non propongo codice al posto di XAML - usa entrambi - preferisco fare il binding anche in XAML - sono contrario a fare ogni sforzo per evitare di scrivere codice dietro esp in un'app WPF - dovrebbe essere una fusione di entrambi per ottenere il massimo da esso.
AGGIORNAMENTO: non è nemmeno un'idea di Microsoft, ogni esempio su MSDN mostra come è possibile farlo in entrambi.