Implementando un mecanismo de mensaje / suscripción en C #

Estoy creando un prototipo de una aplicación WPF con el patrón MVVM. Siguiendo una respuesta aesta pregunta He establecido unModelProviderService que expone modelos como propiedades. Los consumidores del servicio son los modelos de visualización, es decir, retiran sus modelos del servicio en lugar de crear una instancia de ellos mismos.

class ModelProviderService {

  private LoginModel loginModel;
  public LoginModel LoginModel {
    get { return loginModel; }
    set { loginModel = value; }
  }

  private ProjectsModel projectsModel;
  public ProjectsModel ProjectsModel {
    get { return projectsModel; }
    set { projectsModel = value; }
  }

  public ModelProviderService() {
    loginModel = new LoginModel();
    projectsModel = new ProjectsModel();
  }    
}

Ahora, esto es lo que sucederá:

Un modelo de vista cambia una propiedad de, por ejemplo, laLoginModel propiedad.El modelo de vista empuja la propiedad del modelo al servicio estableciendo su propiedad:modelService.LoginModel.MyProperty = localLoginModel.MyProperty;El servicio publicará un mensaje: "Oye, mi modelo de tipo.LoginModel sólo cambió ".Cualquier otro modelo de vista que se haya suscrito a este mensaje extraerá este modelo modificado del servicio.

¿Cómo puedo implementar:

el "mensaje de difusión"?¿La suscripción al mensaje?