将多个ViewModel类型映射到相同的视图类型

时间:2017-01-26 01:31:46

标签: caliburn.micro

我们使用Caliburn.Micro作为视图位置(ViewModel-first),使用视图和ViewModel的默认映射约定,这通常就足够了。我现在需要为异常创建一个映射,其中需要为三种不同的ViewModel类型解析相同的视图类型,并且无法弄清楚如何执行此操作。

举例说明:

ViewModel类型为
MyApplication.ViewModels.ManageTheseThingsViewModel MyApplication.ViewModels.ManageThoseThingsViewModel MyApplication.ViewModels.ManageOtherThingsViewModel

我希望解决的视图是其中之一 MyApplication.Views.ManageThingsView

我看过Handling Custom Conventions,而ViewLocator.AddTypeMapping()似乎就是我需要的,但是那里给出的用法示例不够详细,我可以根据自己的情况进行调整。

我怎样才能做到这一点?

编辑:我的情况允许一种不同的简单方式 - ViewModel都来自一个公共基类。

1 个答案:

答案 0 :(得分:0)

在Caliburn,我们有Name Transformer的概念。

http://caliburnmicro.com/documentation/name-transformer
请参考此链接并使用正则表达式实现。

这将为您提供此类型的帮助。

相关问题