Maison >développement back-end >C++ >Comment naviguer entre les vues dans WPF MVVM sans frameworks externes?
Navigation dans les vues WPF MVVM sans framework externe
Dans les applications WPF qui utilisent le modèle MVVM pour gérer plusieurs vues, la navigation entre les vues est cruciale. Cet article abordera la problématique du passage d'une vue à une autre, notamment lorsque la vue 2 est chargée dans la même fenêtre après avoir navigué depuis la vue 1.
Contrairement à ces liens de référence qui utilisent MVVM Light ou d'autres frameworks, voici une approche simplifiée qui ne nécessite aucune dépendance externe. Cette méthode utilise un modèle de données pour associer la vue au modèle de vue et utilise un ContentControl pour afficher la vue sélectionnée.
Modèle de données et liaison ViewModel
Dans une ressource telle que App.xaml, définissez un modèle de données pour mapper le modèle de vue à sa vue correspondante :
<code class="language-xml"><DataTemplate DataType="{x:Type ViewModels:MainViewModel}"><MainView /></DataTemplate> ...</code>
Changer de vue depuis le ViewModel principal
Dans MainViewModel, créez une propriété ViewModel qui peut être définie sur un modèle de vue différent :
<code class="language-csharp">public BaseViewModel ViewModel { get; set; }</code>
Pour passer à une autre vue, il suffit d'attribuer le modèle de vue correspondant à cette propriété :
<code class="language-csharp">ViewModel = new PersonViewModel();</code>
Navigation dans les vues à partir des sous-vues
Pour pouvoir naviguer depuis les sous-vues, déclarez une commande dans le MainViewModel :
<code class="language-csharp">public ICommand DisplayPersonView { get { return new RelayCommand(action => { ViewModel = new PersonViewModel(); }, canExecute => { ... }); } }</code>
Dans la sous-vue XAML, liez la propriété Command du bouton à cette ICommand :
<code class="language-xml"><Button Command="{Binding DisplayPersonView}" /></code>
En suivant ces étapes, vous pouvez naviguer efficacement dans les vues de votre application WPF MVVM, garantissant ainsi une expérience utilisateur fluide.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!