Как переключить вид в MVVM с помощью MEF - PullRequest
1 голос
/ 25 июня 2010

У меня есть одноэлементные объекты Model и ViewModel, и я хотел бы программно создавать и присоединять к ним представления WPF по одному.Представления могут быть созданы динамически, скажем, путем выбора пункта меню (где-то).Вновь созданное представление избавится от любого старого представления, смотрящего на ViewModel.Тогда он сам сделает текущее представление этого ViewModel, отобразив его в каком-то окне WPF, служащем контейнером для представления UserControl.Я использую MEF для IoC.Важно, чтобы объекты Model и ViewModel создавались только один раз.Какой способ сделать это с помощью MEF?

Ответы [ 2 ]

2 голосов
/ 26 июня 2010

Вы можете взглянуть на ViewModel и Writer примеров приложений WPF Application Framework (WAF) . Они показывают, как переключать представление, используя MVVM и MEF.

0 голосов
/ 14 июля 2010

Я использую первый подход viewmodel в своих тестах. поэтому я создаю экземпляр viewmodel через mef, а затем wpf + datatemplates делают все остальное. все, что мне нужно сделать, это привязать мою фактическую модель представления к содержимому contentcontrol.content. Вы говорите, что важно, чтобы объекты ViewModel создавались только один раз. Вы достигаете этого с помощью mef и creationPolicy.Shared или Lazy <> import. Имея это в виду, я думаю, что ViewModel-First - это путь, по которому вы должны идти. это просто, и вам не нужен дополнительный локатор или wathever:)

...