Динамическое создание ViewModels с помощью легкого инструментария MVVM - PullRequest
1 голос
/ 06 сентября 2011

У меня есть представление поиска и подробные (2-3) представления, которые зависят от выбора вида поиска. После выбора модель представления поиска отправляет сообщение, чтобы изменить представление на Main viewModel, а также отправляет сообщение с выбранным идентификатором.

Когда модель основного вида получает сообщение об изменении вида, она вызывает подробный вид 1. При этом будет искать модель представления, указанная в текстовом тексте данных в локаторе. когда детали этого вида проверены, должен отображаться подробный вид 2 с информацией о выбранном пользователе в поиске.

Я смотрел видео MIX 11. Есть идея Но я хочу сделать это, используя MVVM toolkit 3.

Так что, если я создаю класс со всеми моделями детального вида и заполняю требуемые объекты видовой модели при событии выбора, измененного, у меня все получится. Но должен ли я по-прежнему объявлять статические виртуальные машины в Locator? Как мне связаться с локатором модели View, который, если представление ищет контекст данных типа detailviewmodel1, использует этот класс вместо статической виртуальной машины в локаторе?

1 Ответ

0 голосов
/ 11 сентября 2011

Я не уверен, что вижу необходимость в динамической ViewModel.ViewModel - это всего лишь оболочка вокруг одной или нескольких моделей для предоставления хуков для View.С учетом вышесказанного, если вы уже знаете View, вы уже знаете ViewModel и должны реализовать его во время разработки.

При чтении вашего поста больше похоже, что вы хотите иметь несколько ViewModel для одного View.Если это правильно, вам нужно изучить внедрение зависимостей.Это позволит вам вводить виртуальные машины в представления на основе определенных критериев.Моя личная рекомендация для этого была бы недействительной.

Возможно, кто-то с большим опытом работы с MVVM Light может прийти и дать больше информации.Я сам Caliburn.Micro fella, и хотя он немного сложнее, чем MVVM Light, он немного более гибок с точки зрения внедрения в конструктор и других подобных вещей.

...