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

silverlight – RegionManager.Regions从不包含我的ChildWindow区域,第1张

概述我一直在努力让它发挥作用.基本上我有一个使用MVVM / PRISM / Unity组合的Silverlight应用程序. 我的shell由两个区域RootContent和RootMenu组成.我的RegionManager.Regions能够很好地看到这两个区域,并且应用程序正确运行. 当我在RootContent中的一个视图打开一个ChildWindow时,问题就开始了,它包含更多两个区域,如 我一直在努力让它发挥作用.基本上我有一个使用MVVM / PRISM / Unity组合的Silverlight应用程序.

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

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

<ContentControl Region:RegionManager.Regionname="WOFSCustomerLookup" /><ContentControl Region:RegionManager.Regionname="WOFSCustomerVIEw"  />

这个具有上述XAML的VIEw的viewmodel,即使继承并正确解析,IRegionManager.Regions集合也不包含上面的两个新区域,只包含RootContent和RootMenu.

更多信息

这是我的ChilDWindow如何被调用(它称为“视图”):

ChilDWindow editor = this.container.Resolve<WorkOrderFIEldServiceEditor>();editor.show();

这是我的viewmodel的构造函数:

public WorkOrderFIEldServiceviewmodel(IUnityContainer container,IRegionManager regionManager){    this.container = container;    this.regionManager = regionManager;    // Still have just the two Root regions:    // this.regionManager.Regions[]}

我错过了什么吗?

解决方法 很确定问题是因为你没有通过Prism显示WorkOrderFIEldServiceEditor视图,而只是通过容器获取它的实例,然后直接在它上面调用Show方法.所以,Prism并没有真正参与其中.通过引导程序创建主Shell时,将在区域管理器中创建视图中定义的区域.因此,您需要查看如何使用Prism导航到d出窗口,而不是直接调用Show方法.

签出StockTrader参考应用程序中的RegionPopupBehaviors.cs文件.

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

总结

以上是内存溢出为你收集整理的silverlight – RegionManager.Regions从不包含我的ChildWindow区域全部内容,希望文章能够帮你解决silverlight – RegionManager.Regions从不包含我的ChildWindow区域所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1007421.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存