我有一个prism / silverlight视图,它被映射到我的shell的tab控件中的tabitem。 它看起来像这样。
<sdk:TabControl>
<sdk:TabItem Header="User Portfolio" Regions:RegionManager.RegionName="MainRegion" />
<sdk:TabItem Header="Benchmark Portfolio" Regions:RegionManager.RegionName="BenchRegion" />
</sdk:TabControl>
视图由数据网格,文本框和按钮组成,使得数据网格映射到视图模型中的observablecollection,单击该按钮时,文本框中的文本将添加到数据网格(以及相应的集合)。 / p>
现在,我想声明此view-viewmodel对的多个实例。也就是说,在tabitem“MainRegion”中我想要一个实例。在tabitem“BenchRegion”中我想要另一个实例
我该怎么做?
答案 0 :(得分:0)
您需要获取容器,并且对于视图模型的每个实例,您需要使用IUnityContainer.ResolveType<>()
来初始化实例(确保首先注册您的类型IUnityContainer.RegisterType<>()
)。您可以将ResolveType<>()
视为Prism的构造函数形式。然后,对于每个视图,您需要将datacontext设置为该视图的初始化视图模型。
编辑我应该注意这是针对Prism 2.0我知道使用Prism 4.0可以选择统一。