我有Wpf Prism應用程序和模塊。我想創建很多已經由同一個模塊填充的窗口。但我正在參考此錯誤:多次顯示相同的模塊
創建名稱爲'PriceWindowRegion'的區域時發生異常。例外是:System.ArgumentException:給定名稱的區域已經註冊
我該如何解決這個問題?
感謝,
我有Wpf Prism應用程序和模塊。我想創建很多已經由同一個模塊填充的窗口。但我正在參考此錯誤:多次顯示相同的模塊
創建名稱爲'PriceWindowRegion'的區域時發生異常。例外是:System.ArgumentException:給定名稱的區域已經註冊
我該如何解決這個問題?
感謝,
您需要使用範圍的區域在您的Windows,因爲他們都有着相同的IRegionManager
。此外,請確保您的用戶控件的PartCreationPolicy
屬性設置爲NonShared
。
MSDN給出文檔如何創建的相同區域的多個實例 http://msdn.microsoft.com/en-us/library/ff921098%28v=pandp.40%29.aspx#sec42
作用域區域是僅適用於注射視圖。如果您需要視圖以擁有自己的區域實例,則應使用 。定義具有附加屬性的區域的視圖 會自動繼承其父級的RegionManager,它們將自動繼承 。通常,這是在shell窗口中註冊的全局 RegionManager。如果 應用程序創建該視圖的多個實例,則每個實例 都會嘗試向其父區域管理器註冊其區域。 RegionManager只允許唯一命名的區域;因此,第二次註冊會產生錯誤。
IRegion detailsRegion = this.regionManager.Regions["DetailsRegion"];
View view = new View();
bool createRegionManagerScope = true;
IRegionManager detailsRegionManager = detailsRegion.Add(view, null,
createRegionManagerScope);
Add方法將返回新RegionManager該視圖可以 保留[原文如此]爲進一步訪問本地範圍。
http://stackoverflow.com/a/4822006/181771 – DaveDev
您應該至少添加發生錯誤的代碼。 –