WPF MVVM View Navigation
Dans l'application WPF MVVM, la navigation entre les vues est cruciale. Cet article vise à résoudre le problème de la navigation d'une vue à une autre, comme le passage de la vue 1 à la vue 2 et des vues de suivi.
ViewModellocator et Navigation
Le code fourni par le code se concentre sur le mode ViewModellocator. Cependant, il soulève des questions sur sa réalisation. La fonction CreateMain () mentionnée dans le code n'est pas définie, et l'utilisateur est confus quant au mécanisme de sa vue d'utilisation et de commutation.
La méthode MVVM simplifiée
Afin de simplifier la mise en œuvre du MVVM, nous avons proposé une méthode alternative qui utilise l'inotifyPropertyChaanged Interface et Datatemplates pour lier la vue au modèle de vue. Étape 1: Définissez la classe BaseViewModel
Créez une classe de base BaseViewModel contenant des attributs et des commandes publics. Tous les modèles de vue peuvent être étendus.
Étape 2: Créer la liaison
dans l'application.xaml
Dans l'application.xaml, définissez DataTemplates pour connecter le modèle de vue à ses vues respectives.<code class="language-csharp">public class BaseViewModel : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; }</code>
Étape 3: Utilisez ContentControl
Utilisez ContentControl et liez à l'attribut ViewModel pour afficher le modèle de vue.
<code class="language-xml"><DataTemplate DataType="{x:Type ViewModels:MainViewModel}"><MainView></MainView></DataTemplate></code>
Étape 4: Communiquez la vue dans MainViewModel
Pour changer la vue, définissez l'attribut ViewModel dans MainViewModel.
<code class="language-xml"><ContentControl Content="{Binding ViewModel}"></ContentControl></code>
pour activer la visualisation de la sous-vue de la navigation de vue, définissez la commande dans le MainViewModel et visitez-les en la liant.
Cette méthode fournit une implémentation de navigation MVVM claire et concise sans s'appuyer sur des packages d'outils externes.
<code class="language-csharp">ViewModel = new PersonViewModel();</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!