Ich möchte Änderungen der DependencyProperty zuhören. Dieser Code funktioniert, aber nach jeder Neulade-Seite mit dem CustomControl wird die Callback-Methode mehrmals aufgerufen ...
%Vor%Aktualisieren
ViewModel
%Vor%Anzeigen
%Vor%Beispiel
Es klingt so, als ob die Häufigkeit, mit der das Ereignis ausgelöst wird, sich darauf bezieht, wie oft Sie die Seite mit dem Steuerelement öffnen. Dies würde bedeuten, dass Sie mehrere Instanzen der Seite haben.
Das Problem ist dann wirklich, dass Ihre Seiten etwas tun, das sie daran hindert, richtig zerstört zu werden.
Leider, ohne den Code sehen zu können, ist es unmöglich zu sagen, was das verursacht. Es ist wahrscheinlich, dass Sie ein Ereignis im Code abonniert haben und es nicht abgemeldet haben. (Ich sehe das oft in Phone-Apps.)
Was passiert, ist, dass SecondPageView
mehrmals geladen wird. Jedes Mal, wenn eine neue Instanz erstellt wird, bindet sie sich an den Datenkontext und ruft den Wert von IsOpen
aus dem Ansichtsmodell ab. Dann wird die Abhängigkeitseigenschaft festgelegt.
Das ist eigentlich das gewünschte Verhalten. Wenn die Eigenschaften nicht erneut festgelegt wurden, wird der Status des Ansichtsmodells nicht auf der Seite angezeigt. Es ist nicht möglich, über die native Navigations-API des Telefons zu einer alten Seiteninstanz zu navigieren.
Tags und Links c# windows-phone-8