Question :
Vous développez une application WPF avec plusieurs vues à l'aide de MVVM. Vous souhaitez naviguer entre les vues de manière transparente sans créer de fenêtres distinctes.
Solution :
Contrairement à ce que suggèrent certaines sources, il est possible d'implémenter la navigation MVVM sans utiliser de framework externe. Voici une solution simplifiée :
Exemple :
Dans votre MainWindowViewModel :
public BaseViewModel ViewModel { get; set; }
Dans votre App.xaml :
<DataTemplate DataType="{x:Type ViewModels:MainViewModel}"><MainView></MainView></DataTemplate> <DataTemplate DataType="{x:Type ViewModels:PersonViewModel}"><PersonView></PersonView></DataTemplate>
Dans votre sous-vue XAML : (des exemples de liaison de commandes spécifiques doivent être ajoutés ici, comme l'utilisation de Button et Command)
<Button Command="{Binding Path=NavigateToPersonCommand, Source={StaticResource MainWindowViewModel}}"> <Button.Content>Go to Person View</Button.Content> </Button>
(Remarque : l'exemple XAML ci-dessus nécessite de définir une propriété ICommand nommée NavigateToPersonCommand dans MainWindowViewModel et de définir la propriété ViewModel sur PersonViewModel dans sa méthode d'exécution)
Avec cette approche, vous pouvez implémenter une navigation WPF MVVM concise et efficace sans recourir à un framework de navigation externe. N'oubliez pas que vous devez implémenter les commandes et propriétés correspondantes dans le ViewModel pour compléter la logique de navigation.
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!