2010-01-30 350 views
1

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

问候WPF Prism - 在弹出窗口中动态加载视图

+0

您能否详细说明“根据要求”。在另一个视图中显示注册视图很容易使用区域,但是我觉得“基于需求”的评论可能会使事情稍微复杂一些。 – 2010-02-01 17:01:11

+0

“基于需求” - >我们有一个主外壳窗口和另一个我们打算用作弹出窗口(例如过滤网格,或者从网格中的选项中选择/插入数据)的窗口。这个弹出窗口有一个在其中定义的区域,我们想要显示/加载区域中的不同视图“基于需求:)”,即根据需要的选项 – 2010-02-03 05:12:12

回答

1

使用依赖注入容器(如Unity这也可以从CompositeWPF Microsoft page获得的),你就可以到周围的IRegionManager一个实例传递给你的各种模块/弹出窗口。 ..

例如,在视图中要注入另一种观点认为到,你可以有一个名为ItemsControl的:

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

当您自定义视图填满它,你就必须从做码是:

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

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

2

您可以使用自带的棱镜-V2 RIPopupRegionBehavior达到你正在尝试处于分离的方式做。你可以阅读更多关于它here

请让我知道这是否有帮助。

谢谢, 达米安