我有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
您应该至少添加发生错误的代码。 –