#silverlight #silverlight-4.0 #mvvm #prism
#silverlight #silverlight-4.0 #mvvm #prism
Вопрос:
Я новичок в шаблоне Prism. Мы разработали 3 проекта Silverlight 4 с использованием шаблона MVVM. Теперь мы хотим объединить эти 3 проекта в один проект. Я хочу использовать Prism 4 для этого.
Я должен передавать значения конструктору класса viewmodel из другого viewmodel и взаимодействовать с другими методами класса viewmodel.
Пожалуйста, подскажите мне подход, позволяющий сделать это с помощью Prism.
Ответ №1:
Короче говоря :
-
Prism — это не шаблон, это библиотека.
-
Найдите термин: «BootStrapper» и зарегистрируйте типы и экземпляры в «контейнере», он же UnityContainer в Prism. Обычно это делается в переопределенном методе ConfigureContainer загрузчика. Там вы «сообщаете» контейнеру, какие типы будут ему известны с этого момента.
- Позже вы сможете повторно использовать эти уже определенные (и часто создаваемые экземпляры) типы при «разрешении» других типов. Контейнер достаточно умен, чтобы разрешить все известные зависимости, которые вы передаете через конструктор ViewModel.
Извините, но в настоящее время я не могу предоставить какие-либо примеры, поскольку я путешествую.
Ответ №2:
Я сделал это, используя MEF с Prism. Я уверен, что вы могли бы сделать это и с Unity, но я не использовал это раньше, поэтому не могу рассказать вам, как это делается. Краткое руководство Prism по модульности и агрегации событий — хорошее место для начала.
Используя MEF, я бы передавал значения ViewModel через конструктор, используя [ImportingConstructor]
атрибут, и использовал EventAggregator
для передачи других данных между слабо связанными ViewModels.