2013-09-24 39 views
2

我有Wpf Prism應用程序和模塊。我想創建很多已經由同一個模塊填充的窗口。但我正在參考此錯誤:多次顯示相同的模塊

創建名稱爲'PriceWindowRegion'的區域時發生異常。例外是:System.ArgumentException:給定名稱的區域已經註冊

我該如何解決這個問題?

感謝,

+2

http://stackoverflow.com/a/4822006/181771 – DaveDev

+0

您應該至少添加發生錯誤的代碼。 –

回答

3

您需要使用範圍的區域在您的Windows,因爲他們都有着相同的IRegionManager。此外,請確保您的用戶控件的PartCreationPolicy屬性設置爲NonShared

MSDN給出文檔如何創建的相同區域的多個實例 http://msdn.microsoft.com/en-us/library/ff921098%28v=pandp.40%29.aspx#sec42

作用域區域是僅適用於注射視圖。如果您需要視圖以擁有自己的區域實例,則應使用 。定義具有附加屬性的區域的視圖 會自動繼承其父級的RegionManager,它們將自動繼承 。通常,這是在shell窗口中註冊的全局 RegionManager。如果 應用程序創建該視圖的多個實例,則每個實例 都會嘗試向其父區域管理器註冊其區域。 RegionManager只允許唯一命名的區域;因此,第二次註冊會產生錯誤。

Scoped Regions

IRegion detailsRegion = this.regionManager.Regions["DetailsRegion"]; 
View view = new View(); 
bool createRegionManagerScope = true; 
IRegionManager detailsRegionManager = detailsRegion.Add(view, null, 
          createRegionManagerScope); 

Add方法將返回新RegionManager該視圖可以 保留[原文如此]爲進一步訪問本地範圍。

相關問題