Есть ли способ просто переключаться между разными видами, используя ту же модель вида?MVVM-Light WP7 - просмотр подкачки на виртуальной машине или доступ к предыдущей виртуальной машине вместо перехода к параметрам querystring?
Я хочу, чтобы пользователь мог перейти к различным представлениям одной и той же модели представления.
Основываясь на примерах, которые я нашел до сих пор, я использую навигационную службу для переключения между представлениями, передачи в ID в URI, чтобы целевая ВМ знала, какую запись нужно загрузить.
Различные визуализации выполняются с помощью вспомогательных объектов преобразования, связанных с XAML, поэтому виртуальные машины в основном представляют собой тонкую оболочку вокруг модели и некоторые функции навигации.
Другой подход к навигации состоит в том, чтобы иметь разные визуализации в одном представлении и сворачивать неиспользуемые представления до тех пор, пока они не будут использованы, но это сделает представление более сложным и выведет различные визуализации из стека навигации.
Поскольку виртуальная машина практически идентична между видами, кажется, имеет смысл просто менять представления, а не сохранять/перезагружать объект на основе идентификаторов.
Предполагается, что для каждого представления требуется отдельная виртуальная машина или, по меньшей мере, отдельный экземпляр виртуальной машины для каждого представления, и каждая виртуальная машина не имеет доступа к контексту предыдущей виртуальной машины, кроме того, что передается через параметры param для строки запроса навигации.
Напомним: 1) Могу ли я поменять местами на виртуальной машине с перемещением без потери контекста данных?
или 2) Могу ли я получить доступ к предыдущей виртуальной машине при переходе к событию?
Обновление: Подробнее ->) Из образца MIX11 Deep Dive Navigation - получить виртуальную машину из SimpleIOC, используя идентификатор передается на навигационный запрос в качестве ключа и установить DataContext к нему. Это похоже на сохранение/извлечение объекта данных в хранилище и извлечение его на основе ключа. Это находится в обработчике событий OnNavigated на целевой странице.