Я программирую приложение WP7, придерживающееся шаблона MVVM.
У меня есть ViewModelLocator, который гарантирует, что каждый экземпляр ViewModel является только одним.Эти ViewModels создаются при запуске приложения.ViewModels общаются друг с другом с помощью сообщений.Я использую сообщения для перехода на следующую страницу (для этого я использую NavigationService.Navigate (), который вызывается из MainPage CodeBehind - это единственная функциональность, которая есть в CodeBehind).View и ViewModels соединяются вместе, устанавливая DataContext на странице в ViewModelLocator.
Everythig работает с первого взгляда.
Но во время каждой навигации создается новый экземпляр страницы, который подключен кViewModel из ViewModelLocator (который предназначен для него).В результате: когда пользователь часто переключается между страницами, существует несколько экземпляров страницы, подключенной к одной ViewModel.Конечно, в одной точке видна только одна страница.
Очень простым решением может быть установка NavigationCache, но он доступен только для чтения в WP7.
Я ищу решение нежелательного поведения.