4

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

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

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

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

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

4

1 回答 1

8

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

RegionManager.SetRegionManager(view as DependencyObject, regionManager);

于 2010-01-29T17:09:09.377 回答