【问题标题】:Cannot find Region in RegionManager (using PRISM)在 RegionManager 中找不到区域(使用 PRISM)
【发布时间】:2010-01-30 01:09:09
【问题描述】:

我正在 Prism 中编写应用程序。我有一个用户控件并包含两个 <ContentControl> 控件。这两个都有分配给他们的区域。用户控件托管在使用 ShowDialog() 显示的 Window 中。
我正在使用视图发现将我的一个视图添加到一个区域,而另一个我想将视图注入到它的区域中。视图发现工作正常。但是,当我尝试引用其他区域来注入视图时,我得到了异常:

KeyNotFoundException
区域管理器不包含 MyRegion 区域。

当我查看 RegionManagers 区域时,我试图注入视图的区域既不存在,也不存在正在使用视图发现的区域。

我在与 Shell 不同的窗口中是否重要?我以为只有一个 RegionManager,但我的视图发现必须有两个才能继续工作......?还是因为我在应用程序生命周期的后期创建了两个新区域?还是因为新区域不在我的 MainRegion 内?

编辑:
在进行了一些挖掘之后,它看起来像是创建了 Region,但它找不到 RegionManager 的实例,所以它没有被添加。有什么线索吗?

【问题讨论】:

    标签: wpf prism cab


    【解决方案1】:

    现在排序。我需要在演示者类的构造函数中注册区域管理器。
    这样我的新窗口中的区域就可以找到我的全球区域经理。

    RegionManager.SetRegionManager(view as DependencyObject, regionManager);

    【讨论】:

    • 你也可以在窗口而不是视图上设置RegionManager。在这里查看我的答案:stackoverflow.com/questions/1014948/…
    • @Cameron 我现在遇到的问题是,当我第二次显示对话框时,它给了我一个 UpdateRegionsException。有什么线索吗?
    • 关闭窗口时,需要取消设置RegionManager。
    • 关于如何做到这一点的任何线索?看不到任何看起来可以完成工作的方法。
    • 使用与上面相同的方法,只需传递 null 作为值。 RegionManager.SetRegionManager(view as DependencyObject, null);
    猜你喜欢
    • 2011-08-28
    • 2016-07-29
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    相关资源
    最近更新 更多