2016-05-18 2 views
0

Я на самом деле работаю над проектом с использованием PRISM и Unity, и я столкнулся с проблемой взаимодействия между модулями.Как отобразить представление из модуля в виде другого модуля?

Архитектура проекта выглядит на самом деле так:

App 
-AppModuleA (Layout) 
-AppModuleB 
-AppModuleC 
-AppModuleD 

приложение выглядит на самом деле так:

Application's schema

Если добавить модуль в основной области, он будет добавлен как панель, поскольку mainregion - это XamDockManager от Infragistics. Он также будет называть AppModuleA каждый раз, когда он является основным макетом, поэтому он будет создавать его несколько раз.

Что я хочу сделать, это фактически добавить XamDockManager AppModuleA в представление AppModuleB (или C или D) AppModuleB, отображающее ContentPane. Как мне это сделать?

Я прочитал PRISM учебник there но я не нашел, как это сделать (даже если он говорит, что это возможно на часть 8)

Кроме того, в составном приложении, которое состоит из слабо связанных модулей , представления часто определяются в отдельных модулях. Отдельные взгляды должны быть идентифицированы таким образом, чтобы не вводить жесткие связи и зависимости между модулями.

Любая помощь будет оценена, не стесняйтесь спрашивать меня, если вы узнаете, что этого недостаточно.

Заранее спасибо.

+0

Не уверен, если я получу его, вы хотите, чтобы представление из AppModuleB появилось в представлении AppModuleB? Поместите регион в представление AppModuleA и добавьте AppModuleB свое представление в этом регионе (они оба должны знать имя региона, конечно, это должно быть определено в сборке, известной для обоих модулей). – Haukinger

+0

@ Хаукинджер Спасибо за ваш ответ. Если я поместил область в представление AppModuleA, могу ли я все-таки создать экземпляр этого модуля несколько раз, каждая вкладка отображает область с различными модулями (B, C, D и т. Д.) Внутри? –

+0

Регионы должны иметь уникальные имена ... даже если нет, как бы ваши модули B, C, D знали, какой экземпляр A они должны использовать? – Haukinger

ответ

0

Во-первых, нам необходимо уточнить некоторые термины. Вы не добавляете модуль в свои регионы. Таким образом, вы не добавляете AppModuleA в свой основной регион. Вместо этого ваше приложение будет загружать модули в свой домен приложения, что даст вам доступ к представлениям и логике в модуле. Теперь вы добавляете свои представления в регионы, используя просмотр инъекций, просмотр или навигацию. Для этого вам не нужно знать друг о друге.

Для нескольких экземпляров ваших представлений, которые, как правило, содержат регионы, вам придется использовать так называемую область с областью.

Вы должны смотреть эти курсы, чтобы помочь вам понять эти понятия лучше:

Те даст вам знания, необходимые, чтобы полностью понять, что вы пытаетесь построить.

+0

Спасибо, я сейчас посмотрю. –

Смежные вопросы