【发布时间】:2016-04-28 04:01:13
【问题描述】:
澄清 我正在使用 MVVM 解决方案。我在 ViewModels 和 Views 之间有一个 1 对 1 的映射。我见过的所有解决方案都遵循视图优先的方法,其中视图类型由 IoC 容器解析,并具有 ViewModel 作为依赖项。我需要以某种方式扭转这种情况。
原帖:
我目前正在尝试将一个简单的数据库查看应用程序从 Caliburn Micro 重构为 Prism(我对它非常陌生)。该应用程序当前使用 ViewModel-First 方法,并且 ShellViewModel 维护绑定到 TabControl 的 ViewModel 列表。 我找不到如何在 Prism 中实现类似的方法。我见过的所有解决方案都使用视图优先方法,但我有多个状态都映射到一种类型的视图,并且需要将这些状态分开。
有没有一种方法可以配置 prism 以在将视图模型分配给区域时自动注入视图?
谢谢。
【问题讨论】:
-
我认为您正在寻找使用隐式 DataTemplate。这只是在 XAML 中定义的带有 TargetType 但没有 Key 的 DataTemplate。当在可视树中遇到指定对象时,WPF 将自动使用该 DataTemplate 来绘制指定对象,例如当它尝试呈现一个 TabControl 时,其中 ItemsSource 设置为 ViewModels 的集合。如果需要,请参阅 here 以获取示例。
标签: c# mvvm unity-container prism caliburn.micro