Maison >développement back-end >C++ >Comment naviguer entre les vues dans WPF MVVM sans frameworks externes?

Comment naviguer entre les vues dans WPF MVVM sans frameworks externes?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-26 20:26:11938parcourir

How to Navigate Between Views in WPF MVVM Without External Frameworks?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn