2011-01-27 72 views
4

我有點PRISM新手,但我讀過的幫助文檔,似乎無法找出如何實現以下(這是一個WPF應用程序)PRISM - 重新使用子區域的視圖 - 可以完成嗎?

我有一個Shell(窗口)有2個區域,稱爲'region1'和'region2'。 在我唯一的模塊Initialize方法,我註冊每個區域同樣的看法:

regionViewRegistry.RegisterViewWithRegion("Region1", typeof(View1)); 
regionViewRegistry.RegisterViewWithRegion("Region2", typeof(View1)); 

,當我運行它,一切都在這一點上確定,因爲它創造的View1 2分個人的情況下,和在每個地區放置一個。

現在View1我已經宣佈了自己的區域注入小的孩子看待

<ItemsControl Name="MainRegion" cal:RegionManager.RegionName="MainRegion" /> 

現在,當我跑我很簡單的PRISM應用程序,我得到下面的異常消息:

「地區與給定的名稱已經 已註冊:MainRegion「

這表明我可以如果該視圖聲明瞭自己的區域,則不具有同一視圖的多個實例。

這是正確的嗎?

似乎是一個巨大的限制。

我想我的應用程序是高度模塊化的,並有鑑於撰寫自己的oother意見(通過區域)等

還是我錯閱讀文檔?

回答

6

您可以使用RegionScope創建一個由模塊視圖創建的區域與shell級區域的分離。沒有範圍的情況下創建的任何區域都是「全局」,並且不支持在同一範圍內具有相同名稱的兩個區域。

您可以MSDN文章中瞭解更多有關地區的範圍: http://msdn.microsoft.com/en-us/magazine/cc785479.aspx#id0090126

+0

看看我的答案[這裏](http://stackoverflow.com/a/9227557/921321),怎麼看孩子視圖可以獲得本地作用域`RegionManager`(當從這些範圍內的子項打開其他視圖時非常有用) – Lukazoid 2012-02-13 13:27:59

相關問題