2013-12-11 61 views
0

我的應用程序中有幾個重要的邏輯組件,我打算將它們作爲不同的PRISM shell與它們自己的模塊一起創建。雖然它們目前可以是獨立的模塊,但我們可能會收到請求,在稍後的階段從一個大型表單中啓動它們。所以如果發生這種情況,我將不得不啓動棱鏡「炮彈」,我現在將從更大的炮彈中寫入。這甚至有可能嗎?我可以在另一個shell中加載一個shell嗎?( - 也許就像我的每個shell的一個選項卡)。如果我不能,我現在可以考慮的一般選擇或設計建議是什麼。我仍然處於應用程序的設計階段,如果實施後變得非常僵硬,我可以遠離PRISM。PRISM WPF(MEF) - Shell在另一個Shell中

+0

爲了給您更好的支持,如果您能幫助我更好地理解您描述的情況,我將不勝感激。當你談論不同的Shells時,你是指在不同的窗口中啓動它們嗎?或者你會爲每個這些shell使用一個選項卡?如果這是最後一個選項,那麼shell的行爲與每個單獨的Tab區域上的Views有何不同?問候。 – GOstrowsky

+0

謝謝你的回覆。 目前我打算爲每個組件使用不同的Windows。但是恐怕以後可能會要求我將這些單獨的Windows更改爲一個可以容納標籤內所有不同組件的大窗口。 – Padmaja

+0

謝謝Padmaja。我還有一個問題:這些外殼是否完全獨立?我的意思是,不同的shell和邏輯模塊**會在它們之間進行通信?或者他們會像獨立的應用程序一樣?主要是,我想知道是否每個** Shell都有一個獨立的** Bootstrapper **,然後你將統一所有內容到一個主** Bootstrapper **,恐怕這不會是相當的直觀地完成。 – GOstrowsky

回答

0

爲了加載每個殼牌上的單獨窗口,則可以檢出以下後,顯示在棱鏡-V2創建多殼應用的樣品。然而,這將是它適應棱鏡4很簡單:

通過使用一個單一的引導程序爲每模塊將使得更容易在未來擴展通信它們之間。您可能還需要設置一個更新RegionManager窗口正確註冊每個殼牌的每地區作爲樣本中描述下。

除了RegionManager,通過棱鏡,提供如EventAggregatorModuleManager會服務的其餘部分,獨立於UI的/地區應用的,所以你應該能夠在所有窗口中使用它們而沒有問題。

不過,如果你會加載每個殼牌在單獨的選項卡,你可以定義TabRegion的TabControl殼牌應用,然後註冊,並加載每個內部的在TabRegion就像他們很簡單意見。註冊的每個模塊的初始化查看()方法將加載初始化完成後,每查看

有關管理模塊地區的更多信息,你可能會發現以下MSDN棱鏡指南章有用:

我希望這幫助你,

此致敬禮。