Я не совсем уверен, как это работает в Silverlight, но я думаю, что есть неправильное понимание Prism.
Призма основана на регионах. Это означает, что пользовательский интерфейс приложений состоит из ContentControls (или других элементов управления, способных к региону), которые представляют собой регион. Менеджер региона теперь добавляет все представления, которые хотят находиться внутри определенного региона, именно в этот регион.
Модули просто должны сообщить менеджеру региона, в каком регионе хотят находиться представления, реализованные в конкретном модуле:
RegionManager.RegisterViewWithRegion( "RegionName", typeof( View ) );
Если конкретный регион в настоящее время не является частью пользовательского интерфейса, поскольку представление, содержащее элемент управления, в котором расположен регион, не является частью самого пользовательского интерфейса, представление, которое хочет находиться внутри региона, не может быть размещено внутри этого региона. Региональный менеджер просто не знает региона. Чтобы отобразилось представление, необходимо вручную добавить элемент управления, в котором размещается регион, в пользовательский интерфейс.
Другим способом является добавление конкретного региона вручную. Используя этот подход, вам не нужно регистрировать представление для регионального менеджера. Поэтому, когда региональный менеджер обнаруживает регион, он остается пустым. Теперь вы можете добавить представление вручную в регион, используя менеджер региона:
IRegion region = RegionManager.Regions["RegionName"];
region.Add( new View(), "ViewName" );
Если вы хотите поместить представления в регион в зависимости от состояния или действия пользователя, вы должны добавить его в регион вручную. Взгляните на Справочник трейдера. В ней очень просто объясняется, как добавлять представления в регионы, инициируемые действием пользователя.