首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >棱镜:有没有办法让一个视图知道它是为哪个区域创建的?

棱镜:有没有办法让一个视图知道它是为哪个区域创建的?
EN

Stack Overflow用户
提问于 2019-10-04 15:49:17
回答 1查看 43关注 0票数 0

我有一个视图,它在应用程序中注册了几个不同的区域,每次都使用如下调用

代码语言:javascript
复制
regionManager.RegisterViewWithRegion(regionName, viewType);

然后,当需要时,它被Prism以某种方式实例化。是否可以在视图类构造函数中确定视图将被注入到哪个区域?

例如,我正在尝试在几种类似的情况下重用相同的视图,其中GUI的视觉效果是相同的,但视图背后的视图模型的实例化方式不同。我可以预期这是一个架构上的奇怪之处,但我受到这个大型应用程序的基础设施的相当大的限制。我可以影响注册视图的代码,所以如果有一种方法可以在每次注册时传递一些元数据,稍后可以在实例化过程中检索这些元数据,我就可以这么做。

EN

回答 1

Stack Overflow用户

发布于 2019-10-04 16:16:30

是否可以在视图类构造函数中确定视图将被注入到哪个区域?

据我所知,没有默认的RegionNavigationContentLoader

也就是说,您不会被强制使用默认实现,IRegionNavigationContentLoader.CreateContent会接收完整的NavigationContent,因此您应该能够检测“视图模型影响区域”作为目标,并手动为视图创建正确的视图模型(而不是依赖于ViewModelLocator)。

或者,先查看模型,然后将正确的视图模型放在每个区域的第一位置,同时它们共享相同的视图。诚然,这可能是对应用程序的更大更改,但可能更简洁。

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

https://stackoverflow.com/questions/58232043

复制
相关文章

相似问题

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