내비게이션 WPF 앱에서 전체 상태로 페이지를 유지하는 방법
-
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 호출)는 자동으로 유지됩니다.
나는 그런 사실을 알지 못했고, 당신의 질문에서 당신은 그런 식으로 그것을 찾지 못하는 것 같습니다.
제휴하지 않습니다 StackOverflow