Tengo algunas preguntas sobre el patrón MVVM

Mi nombre es Jesús de España, soy desarrollador de .NET y acabo de descubrir esta gran web hace unos días.

Tengo algunas preguntas sobre el patrón MVVM y me alegrará que pueda responderlas.
omencé a usar WPF hace tres meses y aprendí el patrón MVP.
MVP es muy bueno porque puedes estructurar la aplicación muy bien.

Empecé a ver MVVM en todas partes, pero todos usan el patrón con su propio método.
Cada blogger está hablando de MVVM en sus blogs de WPF, pero cada implementación es distinta.

Ahora estoy centrado en las implementaciones que usan el kit de herramientas MVVM en CodePlex, pero tengo preguntas y no puedo encontrar demasiada información.

Creo que MVVM es una variación de MVP.
Con MVP cada vista tiene un presentador que hace el trabajo de la vista.
En MVVM es lo mismo pero usar comandos siempre que puedas.

También vi que si necesitas un evento, es como con MVP; delegar el evento al presentador / Modelo de vista, es decir, si no es un trabajo para la vista (como actualizar la IU).

Por otro lado, el modelo de vista no tiene una referencia de vista, así que tengo que jugar más duro con los enlaces de datos.
Tiene que usar los Comandos Delegate (que son lo mismo que los Comandos Relay, ¿verdad?)

Uhm ... más preguntas ... ¿Es seguro usar el mismo modelo de vista con dos vistas / controles de usuario?

Oh ... me encontré con un problema ayer cuando estaba jugando MVVM.
Creé unaCommandReference de mi comando para la asignación de teclas y asigné esta referencia a la propiedad de comando de mi botón, bueno, laCanExecuted funcionó la primera vez pero no actualizó elIsEnabled propiedad cuando elCanExecuted era verdad. Lo arreglé vinculando el comando directamente al botón y sin usar la referencia. La pregunta es: ¿por qué algún código vincula la referencia a los objetos y por qué otro código vincula el comando directamente?

¿Qué cosas relacionadas con MVVM debo aprender? (Ayer vi algo llamado comportamientos adjuntos, pero no sé qué es eso).

Estoy reescribiendo una aplicación para agregar notas que desarrollé usando MVP pero ahora con MVVM. Reemplazaré los eventos con comandos (usando DelegateCommand), eliminaré las referencias de vistas en View-Model y creo que eso es todo porque los ejemplos que vi de MVVM son muy parecidos a MVP.

Bueno, agradeceré si me señalas todos los malentendidos que tengo con este patrón.

Gracias y en el futuro ayudaré a los próximos novatos de MVVM:)

Respuestas a la pregunta(4)

Su respuesta a la pregunta