问题描述
|
我是棱镜模式的新手。我们已经使用MVVM模式开发了3个Silverlight 4项目。现在,我们要将这三个项目合并为一个项目。我想使用Prism 4来做到这一点。
我必须将值从另一个视图模型传递给一个视图模型类的构造函数,并与其他视图模型类方法进行通信。
请告诉我使用棱镜的方法。
解决方法
长话短说 :
棱镜不是模式,它是一个库。
查找术语:\“ BootStrapper \”并在\“ container \”(也称为Unity中的UnityContainer)中注册类型和实例。这通常是在Bootstrapper的重写ConfigureContainer方法中完成的。从现在开始,您可以在其中“告诉”容器它是什么类型的容器。
稍后,您可以在“解析”其他类型时重用那些已经定义(并且经常实例化)的类型。该容器足够智能,可以解析您通过ViewModel的构造函数传递的所有已知依赖项。
很抱歉,但是我目前无法提供我旅行中的任何示例。
, 我已经使用MEF和Prism做到了这一点。我确定您也可以使用Unity进行此操作,但是我以前从未使用过它,因此无法告诉您它是如何完成的。关于模块化和EventAggregation的Prism快速入门是一个很好的起点。
使用MEF,我将使用
[ImportingConstructor]
属性通过构造函数将值传递给ViewModel,并使用EventAggregator
在松散耦合的ViewModels之间传递其他数据。