首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RegionManager.Regions从不包含我的ChildWindow区域

RegionManager.Regions从不包含我的ChildWindow区域
EN

Stack Overflow用户
提问于 2011-11-08 17:41:44
回答 1查看 734关注 0票数 4

我已经挣扎了一段时间想让它发挥作用。基本上,我有一个Silverlight应用程序,使用MVVM/PRISM/Unity组合。

我的shell由两个区域RootContentRootMenu组成。我的RegionManager.Regions能够很好地看到这两个区域,并且应用程序正确运行。

RootContent中的一个视图打开一个ChildWindow时,问题就开始了,它包含更多的两个区域,如下所示:

代码语言:javascript
复制
<ContentControl Region:RegionManager.RegionName="WOFSCustomerLookup" />
<ContentControl Region:RegionManager.RegionName="WOFSCustomerView"  />

具有上述XAML的此视图的ViewModel,即使继承和正确解析,IRegionManager.Regions集合也不包含上面的两个新区域,只有RootContent和RootMenu。

更多信息

--这就是我的ChildWindow的调用方式(它调用“视图”):

代码语言:javascript
复制
ChildWindow editor = this.container.Resolve<WorkOrderFieldServiceEditor>();
editor.show();

,这是my ViewModel:的构造函数

代码语言:javascript
复制
public WorkOrderFieldServiceViewModel(IUnityContainer container, IRegionManager regionManager)
{
    this.container = container;
    this.regionManager = regionManager;

    // Still have just the two Root regions:
    // this.regionManager.Regions[]
}

我错过什么了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-09 18:46:23

非常肯定,问题在于您不是通过Prism显示WorkOrderFieldServiceEditor视图,而是通过容器获取它的一个实例,然后直接在其上调用Show。所以,棱镜并没有真正参与其中。当通过引导程序创建主Shell时,将在区域管理器中创建视图中定义的区域。因此,您需要查看如何使用Prism导航到弹出窗口,而不是直接调用Show方法。

签出StockTrader引用应用程序中的StockTrader文件。

http://msdn.microsoft.com/en-us/library/ff921074(v=PandP.40).aspx

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8054761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档