【问题标题】:WPF Prism - load view dynamically in pop up windowWPF Prism - 在弹出窗口中动态加载视图
【发布时间】:2010-01-30 12:06:20
【问题描述】:

我们在 WPF 中有多个基于 MS Prism 的项目解决方案。为了便于理解,让我们有项目外壳和项目用户控件。 usercontrol 项目有许多不同功能的视图。我们在 shell 项目中有一个从主 shell 窗口调用的弹出窗口,我想要的是根据要求将不同的视图加载到弹出窗口区域管理器中。通过流程解释或一些代码示例的任何帮助/建议都将非常受欢迎。

问候

【问题讨论】:

  • 您能否详细说明“基于要求”。使用区域在另一个视图中显示已注册的视图很简单,但是我觉得“基于要求”的注释可能会使事情变得有点复杂。
  • "based on requirements" -> 我们有一个主 shell 窗口和另一个我们打算用作弹出窗口的窗口(例如,过滤网格,或从选项中选择/插入数据)一个网格)。此弹出窗口中定义了一个区域,我们希望“根据要求:)”在该区域中显示/加载不同的视图,即根据所需的选项

标签: wpf view popup prism


【解决方案1】:

您可以使用 Prism-v2 附带的 PopupRegionBehavior RI 以解耦的方式实现您想要做的事情。你可以阅读更多关于它的信息here

如果这有帮助,请告诉我。

谢谢, 达米安

【讨论】:

    【解决方案2】:

    使用依赖注入容器(例如Unity,也可以从 CompositeWPF Microsoft page 获得),您将能够将IRegionManager 的实例传递给您的各种模块/弹出窗口...

    例如,在您希望注入另一个视图的视图中,您可以有一个名为 ItemsControl:

    <ItemsControl cal:RegionManager.RegionName="Modules" />
    

    要用您的自定义视图填充它,您只需通过代码执行以下操作:

    _regionManager.Regions["Modules"].Add(view);
    

    (其中_regionManager 可以是通过依赖注入填充到它所在类的构造函数的实例变量)。不用担心在容器中注册IRegionManager 接口,这是由 UnityBootstrapper 在配置期间完成的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-02
      • 1970-01-01
      • 2016-06-10
      • 2011-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-10
      相关资源
      最近更新 更多