Представьте, что у вас есть представление, которое будет показывать несколько этапов сбора данных. В зависимости от решений, принятых на предыдущем шаге, последовательность или конкретные примеры следующих шагов будут отличаться.
Следуя передовым практикам MVVM-пуриста, я полагаю, что список ViewModels во внешней ViewModel - это способ сделать это, и пусть внешний вид привязывает к нему настраиваемый элемент управления вкладкой (или аналогичный).
Это подводит меня к двум аспектам, которые мне неясны:
Пункт первый: «Что было первым?»
Внешний вид Комбинация / ViewModel, вероятно, будет «Сначала просмотр». То есть представление либо получает ViewModel, либо создает его экземпляр.
Но когда дело доходит до списка ViewModels внутри этой внешней ViewModel: Откуда берутся их соответствующие Просмотры? Какая организация отвечает за выбор лучшего обзора для каждого из них?
Меня не устраивает чередование «Сначала просмотр» и «Сначала модель просмотра», как это.
Пункт второй: обмен данными между моделями просмотра
Когда один из внутренних шагов модели просмотра завершен, например, при щелчке кнопки «Сохранить» или «Далее» должна быть запущена команда для этой внутренней модели представления, а затем должна быть показана следующая.
Это требует, чтобы внешняя ViewModel:
могла принимать команду «Сохранить», отправленную внутренней ViewModel
, иметь доступ к данным внутри внутренней ViewModel.
Как обычно это делается? Считается ли плохой практикой связывать внутреннюю и внешнюю ViewModel вместе с событиями?