Por qué RelayCommand

Últimamente he estado programando mucho en WPF, pero mi View y ViewModel no están separados en este momento. Bueno, es parcialmente. Todos mis enlaces relacionados con texto en cuadros de texto, contenido para etiquetas, listas en cuadrículas de datos, ... se realizan mediante propiedades regulares con un evento NotifyPropertyChanged en ellos.

Todos mis eventos para manejar clics de botón o cosas cambiadas de texto se realizan vinculando los eventos. Ahora, quería comenzar a trabajar con comandos y encontré este artículo:http://www.codeproject.com/Articles/126249/MVVM-Pattern-in-WPF-A-Simple-Tutorial-for-Absolute. Tiene una explicación de cómo configurar MVVM pero estoy confundido con elRelayCommand.

¿Qué trabajo hace? ¿Es utilizable para todos los comandos en mi formulario? ¿Cómo desactivo el botón cuando (a) ciertos cuadros de texto no están llenos?

EDITAR 1:

Una buena explicación para "¿Es utilizable para todos los comandos en mi formulario?" se responde aquí:https://stackoverflow.com/a/22286816/3357699

Aquí está el código que tengo hasta ahora:https://stackoverflow.com/a/22289358/3357699

Respuestas a la pregunta(2)

Su respuesta a la pregunta