Maison > développement back-end > C++ > Comment implémenter la navigation de page dans WPF à l'aide du modèle MVVM ?

Comment implémenter la navigation de page dans WPF à l'aide du modèle MVVM ?

Susan Sarandon
Libérer: 2025-01-13 19:36:42
original
872 Les gens l'ont consulté

How to Implement Page Navigation in WPF Using the MVVM Pattern?

Utilisez le modèle MVVM pour implémenter la navigation dans les pages dans WPF

Navigation des pages dans WPF

Naviguer entre différentes pages ou écrans est un besoin courant lors du développement d'applications WPF. Ceci peut être réalisé grâce à diverses méthodes, notamment MVVM (Model-View-ViewModel).

Méthode MVVM

MVVM est un modèle de conception qui sépare la logique d'une application en différents composants : modèles, vues et modèles de vues. Dans ce cas, la vue est responsable de l'affichage de l'interface utilisateur, le modèle représente les données sous-jacentes et le modèle de vue agit comme intermédiaire entre les deux, convertissant les données du modèle dans un format adapté à la vue.

Utilisation

Pour utiliser MVVM pour implémenter la navigation dans les pages :

  • MainWindow.xaml :

    • Utilisez ContentControl pour héberger la page actuelle.
    • Chargez le modèle de page dans DataTemplates avec la clé correspondant au modèle de vue de page.
    • Liez la propriété Content de ContentControl à la propriété SelectedPage dans le modèle de vue.
  • Modèle de page :

    • Créez des modèles de page en tant que contrôles utilisateur ou DataTemplates.
  • ViewModel :

    • Créez un modèle de vue pour chaque page qui implémente IPage et expose les propriétés spécifiques à la page (par exemple, le titre).
  • MainViewModel :

    • Implémentez MainViewModel, qui gère les pages et la navigation.
      • Conserve un dictionnaire des noms de pages et de leurs modèles de vue correspondants.
      • Fournit une commande (SelectPageCommand) pour sélectionner des pages.
  • SélectionnezPageCommand :

    • Cette commande prend un paramètre représentant la page souhaitée.
    • Une fois exécuté, il récupère le modèle de vue de la page spécifiée dans le dictionnaire et le définit sur SelectedPage, ce qui déclenche l'affichage du modèle correspondant par la vue.

Réussite

<code class="language-xml"><ContentControl Content="{Binding SelectedPage}"></ContentControl></code>
Copier après la connexion
<code class="language-csharp">public ICommand SelectPageCommand => new RelayCommand(SelectPage);

...

public void SelectPage(object param)
{
    if (param is PageName pageName && Pages.TryGetValue(pageName, out IPage selectedPage))
    {
        SelectedPage = selectedPage;
    }
}</code>
Copier après la connexion

Cette approche offre un moyen concis et flexible de parcourir les pages, facilitant l'ajout ou la suppression de pages et réduisant la duplication de code.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal