wpf - 在 RegionManager 中找不到区域(使用 PRISM)

标签 wpf prism cab

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

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

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

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

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

最佳答案

现在排序。我需要在演示者类的构造函数中注册区域管理器。
这样我的新窗口中的区域就可以找到我的全局区域经理。
RegionManager.SetRegionManager(view as DependencyObject, regionManager);

关于wpf - 在 RegionManager 中找不到区域(使用 PRISM),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2162391/

相关文章:

c# - 在辅助监视器中创建 WPF 窗口时遇到问题

c# - WPF UI 仅在调试时崩溃

installation - 编辑预先存在的 cab 文件/安装程序文件

wpf - 关于 View 模型和互连组合框的建议

.net - 您对 MS CAB(复合应用程序 block )有何看法?

windows - 从 FireFox 或命令行安装 CAB 文件

c# - MVVM 更新源触发器

c# - WPF - 当我从其他窗口添加项目时,Observablecollection 绑定(bind)的 DataGrid 没有更新

c# - WPF DataGrid AutoGeneratingColumn 未可靠触发

c# - 将参数传递到 ViewModels (Prism)