WPF MVVM, ViewModel d'initialisation
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:
Code:
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
} |
Des dataTemplate permettent de générer la bonne vue en fonction du type de ViewModel.
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