Представьте, что у вас сложный объект данных. Это было достаточно сложно, чтобы редактировать различные свойства объекта, для пользователя было бы лучше иметь несколько экранов. По сути, это корзина для настроенных товаров.
Таким образом, один экран позволит вам добавлять элементы.
Другой позволит вам добавлять модификации к этим элементам, заранее определенные изменения, которые связаны со стоимостью.
Третий экран позволит вам настроить глобальные параметры для ваших элементов.
Как я уверен, вы можете догадаться, что каждый экран работает на одной и той же корзине, просто изменяя различные свойства и отношения предметов внутри.
Итак, мы попытаемся написать приложение, используя MVVM, и при обсуждении различных экранов (а также навигации между ними) мы пришли к следующему вопросу:
Как люди обычно управляют состоянием приложения при использовании MVVM? Панель навигации, которую пользователи будут использовать для смены экранов, будет существовать за пределами экрана, но когда пользователь щелкает по ней, какие распространенные способы используются людьми, чтобы скрыть одно и показать другое?
В целом, как люди обрабатывают глобальное состояние приложения? Пользователь может одновременно работать только с одной корзиной, одновременно может быть зарегистрирован только один пользователь, одновременно может отображаться только один экран. Будет ли лучше создать синглтон, в котором хранятся эти важные свойства, а ViewModels может хранить их копии и подписываться на изменения через агрегатор событий?
Как вы можете сказать, я даже не знаю, с чего начать эту проблему, поэтому любой совет вообще приветствуется и уместен.