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 : 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
}
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