2012-03-02 82 views
1

我正在使用PRISM和Unity Container。如何創建嵌套區域?

我的殼裏有一個TabControl,有一個叫做MainRegion的區域。

然後,我在另一個項目中稱爲Common a view。該視圖包含一個ContentRegion區域及其下方的兩個按鈕。

使用這個通用項目,我創建了幾個引用Common項目的模塊。當我創建一個新的模塊時,我需要創建視圖,它應該將它放置在上一個項目的ContentRegion中。

請檢查下面的圖像。

enter image description here

我的意思是我創建的每一個模塊,我需要創建爲ContentRegion視圖。

我不知道如何實施這種情況,你可以定位我嗎?

回答

1

根據你的問題來分辨你想要做什麼有點難,但我會試試看。它看起來像你想要的是本地範圍的區域經理。

因此,在每個模塊中,您將添加公共視圖到選項卡控制區域。它可能看起來像這樣:

public class ModuleA 
{ 
    public ModuleA(IRegionManager regionManager) 
    { 
     _shellRegionManager = regionManager; 
    } 
    public bool Initialize() 
    { 
     IRegion tabRegion = _shellRegionManager.Regions["tabRegion"]; 

     //You may actually want to use your container to resolve the common view, but 
     //I'm creating it here for demonstration sake. 
     Object commonView = new CommonView(); 

     //This is the important part... setting the 3rd parameter to true gives us 
     //a new locally scoped region manager, so Prism won't complain about the fact 
     //that the common view contains regions with names that have already been 
     //registered in other modules 
     IRegionManager localRM = tabRegion.Add(new CommonView, "ModuleACommon", true); 

     IRegion commonContentRegion = localRM.Regions["ContentRegion"]; 
     commonContentRegion.Add(new ModuleAView()); 

    } 
    IRegionManager _shellRegionManager; 
}