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