2013-02-26 2 views
0

프로젝트에는 Page 파생 클래스가 많이 있고 MainWindowNavigationWindow입니다. 페이지가있는 NavigationWindow 사용

정말 코드 Navigate(new PageDerivedClass()) 이되어야하거나 계층 Page 나무는 전에 을 구축해야 하는가?

내가 돌아가서 만들 다시 같은 일을 할 경우 새로운 PageDerivedClass, 응용 프로그램이 어떻게 든 그 사건을 처리하고 새로운 하나를 구축하는 대신 을 이미 생성 된 페이지를 사용하지 않겠습니까?

내가 볼 수있는 한 새로 만든 페이지는 NavigationWindow의 화살표를 계속 탐색 할 수 있기 때문에 GarbageCollected, 이 아닙니다.

어떻게 든 새는가요?

올바른 방법으로 사용하는 방법은 무엇입니까? MSDN은별로 도움이되지 않습니다.

답변

1

NavigationWindow는 탐색 기록에 콘텐츠 개체의 인스턴스를 저장하지 않습니다. NavigationWindow는 탐색 기록을 사용하여 탐색 할 때마다 콘텐츠 객체의 새 인스턴스를 만듭니다. 이 동작은 많은 수의 콘텐츠를 탐색 할 때 과도한 메모리 소비를 피하기 위해 설계되었습니다. 결과적으로, 콘텐츠의 상태는 하나의 탐색에서 다음 탐색으로 기억되지 않습니다. 그러나 WPF는 탐색 기록에있는 내용에 대해 상태 조각을 저장할 수있는 몇 가지 기술을 제공합니다. (출처 MSDN)

당신이 정말로 새로운 매번 만들지 않도록하려는 경우, 당신은 또한 다음과 같이 그들로 전환, 다양한 페이지 (페이지 1, 페이지 2 등)의 인스턴스를 생성하고 응용 프로그램 개체에 저장할 수 있습니다 :

NavigationSerivce.Navigate(App.Page2); 

Soruce : Stackoverflow answer

+0

그냥 어떻게 든 overread! 고맙습니다! –