Bonjour,
Je travaille sur une application C# WPF et je m'appuie sur MVVMlight.
Dans ma fenêtre principale j'ai un content control qui permet d'afficher la vue active en binding sur une propriété du MainViewModel:
Des dataTemplate permettent de générer la bonne vue en fonction du type de ViewModel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 ///MainViewModel.cs public ViewModelBase ActiveViewModel { get { return _activeViewModel; } set { Set(() => ActiveViewModel, ref _activeViewModel, value); } } Public RelayCommand GotoViewModelA; public void ExecuteGoToViewModelA() { ActiveViewModel=ViewModelA }
Mon problème:
Pour certains ViewModel (ViewModelA) je souhaiterais avoir un autre ViewModel (InitViewModelA) permettant de l'initialiser, un peu à la manière d'un écran de login.
Il doit aussi être possible de fermer ViewModelA et donc de revenir a InitViewModelA.
La logique serait donc:
- si ViewModelA.IsInit=true => ActiveViewModel=ViewModelA
- si ViewModelA.IsInit=false => ActiveViewModel=InitViewModelA
Je souhaiterais savoir quelle est la manière la plus propre de réaliser cela (Messenger, Créer InitViewModelA avec un callback...)?
Merci
Partager