¿Cómo se "deshabilita" un botón en WPF usando el patrón MVVM?

Estoy tratando de entender WPF y MVVM y he progresado bastante. Las cosas de WPF y MVVM van bien.

Sin embargo, el lado de XAML y el enlace de datos es otra historia :)

¿Cómo haría para "deshabilitar" un botón?

Por ejemplo, tengo una propiedad CanClose en mi modelo de vista que determina si la aplicación se puede cerrar actualmente o no. Si un subproceso de trabajo está haciendo algo, entonces esta propiedad se establece en falso y me gustaría atenuar el botón o deshabilitar visualmente el botón Cerrar mediante algún tipo de enlace.

¿Cómo haría para hacer esto?

¡Gracias!

Editar -

Lástima que solo puedo aceptar una respuesta.

Estas dos respuestas me ayudaron enormemente. En la publicación de Kent, fue un paso más allá al explicar por qué debería implementar una infraestructura de comandos en su aplicación en lugar de deshabilitar un botón de la manera que le había preguntado:

¿Cómo se "deshabilita" un botón en WPF usando el patrón MVVM?

Y la respuesta a mi pregunta original:

¿Cómo se "deshabilita" un botón en WPF usando el patrón MVVM?

Respuestas a la pregunta(4)

Su respuesta a la pregunta