MVVM 패턴을 준수하는 WP7 애플리케이션을 프로그래밍 중입니다.탐색 할 때 인스턴스 생성을 관리하는 방법
저는 ViewModel의 각 인스턴스가 하나 뿐인 ViewModelLocator를가집니다. 이러한 ViewModel은 응용 프로그램이 시작될 때 만들어집니다. 메시지를 사용하여 서로 통신하는 ViewModels. 다음 페이지로 navigatig에 대한 메시지를 사용합니다. NavigationService.Navigate()를 사용하고 있는데 이는 MainPage CodeBehind에서 발생합니다. CodeBehind에있는 유일한 기능입니다. ViewModel은 페이지의 DataContext를 ViewModelLocator로 설정하여 함께 연결됩니다.
Everythig는 첫눈에 작동합니다.
그러나 각 탐색 중에는 ViewModelLocator (ViewModelLocator 용으로 설계된)에서 ViewModel에 연결된 새 Page 인스턴스가 만들어집니다. 결과는 다음과 같습니다. 사용자가 종종 페이지를 전환 할 때 페이지의 여러 인스턴스가 하나의 ViewModel에 연결됩니다. 물론, 한 번에 한 페이지 만 볼 수 있습니다.
매우 간단한 해결책은 NavigationCache를 설정할 수 있지만 WP7에서는 읽기 전용입니다.
원하지 않는 동작의 해결책을 찾고 있습니다.
페이지 언로드 기능에서 DataContext를 Null로 설정하면 GC가 페이지를 더 빨리 수집합니다. – BigL