Frage:
Sie entwickeln eine WPF-Anwendung mit mehreren Ansichten mithilfe von MVVM. Sie möchten nahtlos zwischen Ansichten navigieren, ohne separate Fenster zu erstellen.
Lösung:
Im Gegensatz zu dem, was einige Quellen vermuten, ist es möglich, die MVVM-Navigation ohne die Verwendung eines externen Frameworks zu implementieren. Hier ist eine vereinfachte Lösung:
Beispiel:
In Ihrem MainWindowViewModel:
<code class="language-csharp">public BaseViewModel ViewModel { get; set; }</code>
In Ihrer App.xaml:
<code class="language-xml"><DataTemplate DataType="{x:Type ViewModels:MainViewModel}"><MainView></MainView></DataTemplate> <DataTemplate DataType="{x:Type ViewModels:PersonViewModel}"><PersonView></PersonView></DataTemplate></code>
In Ihrem Unteransicht-XAML: (Hier müssen spezifische Befehlsbindungsbeispiele hinzugefügt werden, z. B. die Verwendung von Button und Command)
<code class="language-xml"><Button Command="{Binding Path=NavigateToPersonCommand, Source={StaticResource MainWindowViewModel}}"> <Button.Content>Go to Person View</Button.Content> </Button></code>
(Hinweis: Das obige XAML-Beispiel erfordert die Definition einer ICommand-Eigenschaft namens NavigateToPersonCommand in MainWindowViewModel und das Festlegen der ViewModel-Eigenschaft auf PersonViewModel in ihrer Ausführungsmethode)
Mit diesem Ansatz können Sie eine prägnante und effiziente WPF-MVVM-Navigation implementieren, ohne auf ein externes Navigations-Framework angewiesen zu sein. Denken Sie daran, dass Sie die entsprechenden Befehle und Eigenschaften im ViewModel implementieren müssen, um die Navigationslogik zu vervollständigen.
Das obige ist der detaillierte Inhalt vonWie implementiert man eine nahtlose WPF-MVVM-Navigation ohne externe Frameworks?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!