Frage

Ich baue eine WPF-Anwendung mit Seiten und den Navigationsdienst.
Eine der Seiten nimmt ein Objekt als Konstruktor

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

    ....

Also, zu navigieren, um es ich tun

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

Das Problem tritt auf, wenn ich etwas in der Seite bin die Bearbeitung, und gehen Sie zurück, und die sie auf MyPage ich die folgende Fehlermeldung erhalten:

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

Was mache ich falsch?

War es hilfreich?

Lösung

Sie müssen die Host-Anwendung sagen, dass die Seite im Speicher bestehen bleiben sollte, anstatt sie jedes Mal, „entladen“ werden navigieren weg und „reloaded“, wenn Sie wieder zu ihm kommen. Das erweist sich als recht einfach sein: Nur die hinzufügen Keep-Alive Attribut auf Ihrer Seite Deklaration:

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

Interessanterweise sagt die MSDN-Dokumentation folgt aus:

  

Seiten, die instanziiert werden und   navigiert nur Code (für   Beispiel Aufruf Navigate), sind   automatisch am Leben gehalten.

Ich habe nicht festgestellt, dass der Fall zu sein, und aus Ihrer Frage scheint es Dich nicht, dass es so entweder zu finden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top