我正在使用datatemplate通过PRISM 4 Discovery加载我的视图。我需要多次创建视图/视图模型,而不是重用现有实例,因此我在资源中设置了x:Shared=false,但它仅在viewmodel上有影响。我可以确认viewmodel未被重用,但视图被重用。只有第一次调用时,才会调用视图构造函数一次。我已阅读了类似的帖子,但他们的解决方案对我没有起作用。我想知道是否可以扩展资源加载器/定位器,并确保它遵守Shared标志。
以下是我的模板定义方式:
以下是我的模板定义方式:
<DataTemplate DataType="{x:Type CVM:MyViewModel}" x:Shared="False">
<V:MyView />
</DataTemplate>
PartCreationPolicy
属性来控制是否要使用单例。Shared
表示单例,NonShared
表示新实例。您是否已经使用[PartCreationPolicy(CreationPolicy.NonShared)]
装饰了您的视图? - Fredrik Hedblad