Несколько других опций, не упомянутых другими:
Команда реле
ВМ выполняет команду, которую я люблю называть «релейной командой». Это команда, обработанная кем-то другим, и виртуальной машине все равно, кто. Выполнение команды ничего не делает, кроме как вызывает событие Executed
. Ваше представление подпишется на это событие и отобразит содержимое в новом Window
(содержимое будет передано в качестве параметра команды).
Обратите внимание, что команда relay не является перенаправленной командой. Он не ищет обработчик в своей логике исполнения. Это просто вызывает событие.
Сервис
Если во многих случаях вам нужно что-то показывать в окне, напишите службу пользовательского интерфейса, которая позаботится об этом. Затем виртуальные машины зависят от этой службы (которая может быть легко смоделирована) для отображения содержимого в окнах.