c# - PRISM:一个区域中的嵌套区域

标签 c# wpf module prism region

该项目基于 PRISM。

我在 Shell 的 TabControl 中有一个主要区域。

        <!-- Main Region : A tab control -->
        <TabControl prism:RegionManager.RegionName="MainRegion" >
        </TabControl>

然后,我有几个模块,它们都包含相同的 View 。并且必须添加到选项卡控件区域。

|_ModuleA
| |_ViewA
|
|_ModuleB
  |_ViewB

请检查图像。在选项卡ModuleA中,它显示在选项卡内容的左侧ViewA,右侧是通用 View ,因为所有选项卡必须显示相同的UI。

enter image description here

我该怎么做?

最佳答案

我想“lecrank”已经回答了这个问题。在其他 Region 或 View 中添加 Region 是没有问题的。我在我的项目中做了什么:

  • 每个模块在构造函数中接收 IRegionManager 和 IEventAggregator 对象的副本(我使用 MEF)
  • Initialize() 函数中,每个模块注册它自己的区域和它自己的 View 等等...
  • 每当事件或程序流应该传递给另一个模块(例如)时,我只是 .Publish() 带有参数的预定义事件(CompositePresentationEvent)。
  • Shell 本身只是一个空模板,它只定义了几个“全局”区域(如您场景中的 TabControl),其上显示的所有内容都来自不同的模块 View ,而不是在 Shell 类甚至包含项目的 Shell 中实现。

因此,请随意在其他模块中定义和实现区域和 View - 只需将 IRegionManager 和 IEventAggregator 实例以某种方式传递到模块类中即可。

关于c# - PRISM:一个区域中的嵌套区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9446919/

相关文章:

Python:调用同一目录中的模块

javascript - 如何为每个指定(node env,express fr)路由发布请求创建可以变异并可通过所有模块使用的全局 obj 实例?

c# - 无效操作异常 : No columns were selected when performing a DELETE query

wpf - 如何在WPF中制作反射效果? (来自代码)

c# - 构建复杂的条件绑定(bind)的最佳方式

c# - 如何卡住 WPF DataGrid 的第一列

c# - 为什么多线程访问 WPF UI 控件会产生开销?

apache - 我可以从 C 模块内部强制关闭 Apache 2.2 连接吗?

c# - 在 C# 应用程序中获取插件或扩展功能的步骤是什么?

c# - EF Core 2.1 为一对多关系选择字段