Ich habe ein MVVM Light UWP-Projekt, wo ich die App zurücksetzen und die Benutzeroberfläche neu laden möchte. Ich hatte gehofft, dass ich einfach in meine App-Klasse einsteigen könnte, um das zu tun, aber ich mache seltsame Dinge.UWP zurücksetzen Hauptrahmen
Als Test, wenn ich
Window.Current.Content = null;
Form innerhalb einer Seite in meiner app nennen, dann wird der Inhalt des Fensters wird leer, wie erwartet. Aber wenn ich meinen Setup-Code erneut ausführe, der die AppShell (meine Root-Container-Seite) einrichtet und Window.Current.Content auf diesen setzt, ändert sich nichts.
Der ViewModel-Konstruktor wird nicht erneut getroffen, daher vermute ich, dass das Problem damit zu tun hat, wie MVVM Light das ViewModel instanziiert. Vielleicht muss ich noch etwas anderes tun, um eine neue Instanz davon zu bekommen?
Danke. Ich habe den Fensterinhalt nur als Test auf Null gesetzt, wie ich in meiner Frage gesagt habe ... nur um zu beweisen, dass es tatsächlich gelöscht wurde. Ich verstehe, dass es auf einen Rahmen eingestellt werden muss. Dein Code ist hilfreich, aber kannst du etwas über den _navigationService erzählen? – Scott
Es ist der 'private readonly INavigationService _navigationService;', wenn Sie die Vorlage MVVM Light verwenden, um eine UWP-App zu erstellen, finden Sie diese in 'MainViewModel.cs'. Die Instanz von diesem wird tatsächlich in dem 'ViewModelLocator.cs' erstellt. –