Чтобы ответить на вопрос 1, почему вы не используете класс MVVM light "Messenger".
По вашему мнению, вы регистрируетесь для прослушивания сообщения следующим образом:
Messenger.Default.Register<bool>(this, "MessageId", DoSomething);
Где DoSomething - метод, который принимает логический параметр (например).
Затем, чтобы отправить сообщение из вашей модели представления, вы делаете следующее:
Messenger.Default.Send(false, "MessageId");
Надеюсь, это поможет :) Вам нужно будет добавить это к вашему использованию:
using GalaSoft.MvvmLight.Messaging;