내비게이션 WPF 앱에서 전체 상태로 페이지를 유지하는 방법

StackOverflow https://stackoverflow.com/questions/860866

  •  21-08-2019
  •  | 
  •  

문제

페이지와 내비게이션 서비스를 사용하여 WPF 앱을 구축하고 있습니다.
페이지 중 하나가 객체를 생성자로 취합니다.

Sub New(ByVal o As Object)
    ' This call is required by the Windows Form Designer.
    InitializeComponent()

    ....

그래서, 그것을 탐색하기 위해 나는한다

    Dim MyPage As New Page1(MyObject)
    MyBase.NavigationService.Navigate(MyPage)

문제는 페이지에서 무언가를 편집하고 되돌아 갈 때 발생하며, MyPage로 향하는 전진은 다음과 같은 오류를 얻습니다.

 Cannot create object of type 'Page1'. CreateInstance failed, which can be 
 caused by not having a public default constructor for 'Page1'.  

내가 뭘 잘못하고 있죠?

도움이 되었습니까?

해결책

호스트 애플리케이션에 페이지가 이동할 때마다 "언로드"가 아니라 메모리에 유지되어야한다고 말해야합니다. 그것은 매우 쉬운 것으로 판명되었습니다. 살아 유지 페이지 선언에 대한 속성 :

<Page x:Class="..." KeepAlive="True">

흥미롭게도 MSDN 문서는 다음과 같습니다.

코드 만 사용하도록 인스턴스화되고 탐색되는 페이지 (예 : aviGate 호출)는 자동으로 유지됩니다.

나는 그런 사실을 알지 못했고, 당신의 질문에서 당신은 그런 식으로 그것을 찾지 못하는 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top