我有以下代码作为ViewModel
类的构造函数:
[ImportingConstructor]
public ItemDefViewModel(IItemDefView view)
:base(view)
{
_Item = new ItemModel();
}
此视图模型对应于子窗口。当我运行子窗口一次,关闭它并尝试再次运行它时,我得到一个例外,告诉我我无法在关闭的窗口上调用Show
,ShowDialog
。这是否意味着只创建了1个IItemDefView
对象?我应该怎么做呢?
答案 0 :(得分:2)
默认情况下,MEF将容器中的实例注册为单例。要更改此行为,需要在ImportAttribute中将属性Required CreationPolicy设置为NonShared。 请参阅ImportAttribute.RequiredCreationPolicy Property,Parts Lifetime