【问题标题】:Show the same module more than once [duplicate]多次显示同一模块[重复]
【发布时间】:2013-09-24 07:47:22
【问题描述】:

我有 Wpf Prism 应用程序和模块。我想创建许多由同一模块填充的窗口。但我犯了这个错误:

创建名为“PriceWindowRegion”的区域时发生异常。例外是:System.ArgumentException:具有给定名称的区域已注册

我该如何解决这个问题?

谢谢,

【问题讨论】:

标签: c# wpf mvvm prism


【解决方案1】:

您需要在窗口中使用一个作用域区域,因为它们都共享相同的IRegionManager。此外,请确保您的用户控件将其PartCreationPolicy 属性设置为NonShared

MSDN 提供了有关如何创建同一区域的多个实例的文档 http://msdn.microsoft.com/en-us/library/ff921098%28v=pandp.40%29.aspx#sec42

作用域区域仅适用于视图注入。你应该使用 如果您需要一个视图来拥有自己的区域实例,请使用它们。意见 定义带有附加属性的区域自动继承 他们父母的 RegionManager。通常,这是全局 在 shell 窗口中注册的 RegionManager。如果 应用程序创建该视图的多个实例,每个实例 将尝试向父 RegionManager 注册其区域。 RegionManager 只允许唯一命名的区域;因此, 第二次注册会产生错误。

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

Add 方法将返回视图可以使用的新 RegionManager 保留 [原文如此] 以进一步访问本地范围。

【讨论】:

    猜你喜欢
    • 2022-01-06
    • 2013-07-25
    • 2019-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    相关资源
    最近更新 更多