Sento che la comunità MVVM è diventata troppo zelante come i programmatori OO negli anni '90: è un termine improprio MVVM è sinonimo di nessun codice. Dalla mia domanda StackOverflow chiusa :
Molte volte mi imbatto in post qui su qualcuno che cerca di fare l'equivalente in XAML invece del codice dietro. La loro unica ragione è che vogliono mantenere il loro codice "pulito". Correggimi se sbaglio, ma non è il caso che:
Anche XAML viene compilato - in BAML - quindi in fase di runtime deve essere analizzato comunque nel codice. XAML può potenzialmente avere più bug di runtime in quanto non verranno raccolti dal compilatore al momento della compilazione - da errori di ortografia - anche questi bug sono più difficili da eseguire il debug. C'è già del codice dietro - piaccia o no InitializeComponent (); deve essere eseguito e il file .gics in cui si trova contiene un sacco di codice sebbene possa essere nascosto. È puramente psicologico? Ho il sospetto che siano gli sviluppatori che provengono da un background web e amano il markup rispetto al codice.
EDIT: non propongo codice dietro invece di XAML - uso entrambi - preferisco fare anche il mio binding in XAML - sono solo contrario a fare ogni sforzo per evitare di scrivere codice dietro esp in un'app WPF - dovrebbe essere una fusione di entrambi per trarne il massimo.
AGGIORNAMENTO: Non è nemmeno un'idea di Microsoft, ogni esempio su MSDN mostra come è possibile farlo in entrambi.