2011-03-16 66 views
1

我有一個主要的Silverilght項目和其他模塊,我正在使用Prism將它們與Unity依賴注入綁定在一起。Prism RegionManager和Unity容器問題

我有一個模塊,取決於IRegionManager,它自然會被Unity注入。

我跑的問題是,在RegionManager,我得到不含即使我在殼牌宣佈他們兩人的任何區域如下的Regions屬性:

regions:RegionManager.RegionName="MainRegion" 

我無法弄清楚這種行爲的原因。我試着註冊RegionManager如使用

Container.RegisterInstance<IRegionManager>(new RegionManager()); 

以及留下的統一處理此一單。但是,我得到了相同的結果:(

我想要做到的,是注入一個視圖進入特定區域,並激活它,不能用做

_regionManager.RegisterViewWithRegion("MainRegion", typeof(MyView)); 

這就是爲什麼我需要獲得「MainRegion」的保持對象本身並操縱它

我希望有人有這個想通了,我會非常感激:)

編輯:。 我應該提到的是,查看發現工作得很好,我可以RegisterViewWithRegion,但是當我檢查RegionManagerRegions屬性時,我發現它是空的!

+0

您是否包含該區域的XAML定義區域的名稱全球RegionManager? – Maciek 2011-03-18 06:22:44

+0

是的,當然(請參閱第一個代碼段) – AbdouMoumen 2011-03-18 10:13:34

回答

3

在思考這個問題以及它發生的環境時,它激怒了我,就像軟件中的大多數錯誤一樣,問題不在我尋找的地方!

我的設置如下:我從Silverlight Business Application項目模板開始。這給了我MainPage,我用作我的Shell,和幾個意見(HomeAbout)。現在,我沒有將這些區域放在我的Shell上,而是將它們放在Home視圖中,將MainPage保持爲一種母版頁。

我認爲棱鏡爲Shell設置了RegionManager,並將它傳遞給任何需要它的人(使用依賴注入容器)。這樣,當我在模塊中要求IRegionManager時,我得到了一個用於我的Shell的文件,其中不包含任何區域(因此爲空Regions屬性)。

爲了解決,這一切我所要做的就是把我的地區,在其rightfull地方:殼牌,和一切工作正常(對於)現在。

更新: 好像我「採取這種」實際上是正確的:),這是從Prism Documentation的摘錄:(下作用域地區

視圖定義與附加屬性區自動繼承父母的RegionManager。通常情況下,這是登記在窗口