Несколько видов - одна модель ViewModel MVVM Light в SL4 - PullRequest
1 голос
/ 22 января 2011

Привет -

Я пишу приложение, для которого в конечном итоге потребуются две реализации пользовательского интерфейса. Первым будет стандартное приложение, которое будет использовать большинство наших клиентов. Второе - это индивидуальная реализация, которую наш крупнейший клиент просит нас разработать для них. Это больше, чем просто замена стиля или скина ... в некоторых случаях мы используем Accordion (RadPanelBar, действительно) для одной версии, но будем использовать TabControl в другой.

Поскольку я использую EventToCommand, код ViewModel идентичен. Я просто смоделировал это, используя элемент управления с вкладками и RadPanelBar, и эффект был таким же ... просто подключил мою EventToCommand к соответствующим элементам управления, и все работало, как ожидалось.

Я понимаю, что отношение View к ViewModel обычно составляет 1: 1. В моем сценарии я хочу, чтобы это было 2: 1, где у каждого viewModel есть 2 связанных представления. Для каждого приложения требуется около 50 просмотров, то есть всего 100 просмотров для 50 моделей представления.

Первый вопрос - это можно сделать? Второй вопрос - я на правильном пути? Третий вопрос - ответьте «да» на первый вопрос: как работает реализация? Нужно ли дублировать код в моем локаторе для подключения ViewModel1 с View1A и View1B?

Спасибо

Scott

1 Ответ

2 голосов
/ 22 января 2011

Я думаю, что ваш подход верен.

Я думаю, что это действительно глупо, если нам нужно иметь 2 ВМ для 2 просмотров, что делает то же самое.

Сценарий 1: 1это когда у вас есть views-vm, который делает разные вещи не для двух представлений одной и той же вещи.

Как это сделать?Вам не нужно дублировать код в локаторе.Просто подключите два представления к одной и той же модели представления (уже в локаторе) в свойстве DataContext.

...