在Prism / Silverlight中创建viewmodel的多个实例

时间:2010-12-10 11:52:54

标签: silverlight prism

我有一个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”中我想要另一个实例

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您需要获取容器,并且对于视图模型的每个实例,您需要使用IUnityContainer.ResolveType<>()来初始化实例(确保首先注册您的类型IUnityContainer.RegisterType<>())。您可以将ResolveType<>()视为Prism的构造函数形式。然后,对于每个视图,您需要将datacontext设置为该视图的初始化视图模型。

编辑我应该注意这是针对Prism 2.0我知道使用Prism 4.0可以选择统一。

相关问题