2012-05-26 6 views
0

У меня есть следующий код, как конструктору ViewModel класса:Посмотреть аргумент построен один раз

[ImportingConstructor] 
    public ItemDefViewModel(IItemDefView view) 
     :base(view) 
    { 
     _Item = new ItemModel(); 
    } 

Этот вид модели соответствует дочернего окна. Когда я запускаю дочернее окно один раз, закройте его и попробуйте запустить его снова. Я получаю исключение, говорящее, что я не могу позвонить Show, ShowDialog в закрытое окно. Означает ли это, что создается только 1 IItemDefView? Как мне это сделать?

+0

WinForms? Silverlight? –

ответ

2

По умолчанию MEF регистрирует экземпляры в контейнере как однотонные. Чтобы изменить это поведение, вам необходимо установить свойство RequiredCreationPolicy в ImportAttribute для NonShared. См. ImportAttribute.RequiredCreationPolicy Property, Parts Lifetime

Смежные вопросы