Bonjour à tous,
Je suis débutant avec le framework MVVM Light et j'ai un gros problème de compréhension au niveau du container SimpleIoc.
Je cherche des tutos dessus depuis des jours mais pas moyen de trouver quoi que ce soit d'assez complet et qui soit destiné aux débutants.
Dans mon projet, j'ai plusieurs fenêtres et j'aimerai utiliser SimpleIoc pour instancier mes fenêtres à partir d'un ViewModel.
Du coup j'ai ajouté dans mon mainWindow.xaml.cs le code suivant :
Mes interfaces sont vides :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); SimpleIocInitialize(); } private void SimpleIocInitialize() { SimpleIoc.Default.Register<IAboutWindow, AboutWindow>(); SimpleIoc.Default.Register<IConfigurationWindow, ConfigurationWindow>(); SimpleIoc.Default.Register<IClientWindow, ClientWindow>(); } }
J'aimerai pouvoir instancier une fenêtre (avec un ShowDialog) depuis n'importe quel ViewModel mais lorsque j'essaie de récupérer une instance, je n'ai pas accès aux méthodes de la fenêtre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public interface IAboutWindow {} public interface IConfigurationWindow {} public interface IClientWindow {}
Je crois que je récupère une instance de l'interface IAboutView plutôt que la fenêtre ... Je suppose que mon problème vient du fait que je comprends mal l'utilisation du SimpleIoc. Si quelqu'un peut corriger mon code ou me donner un exemple d'utilisation, ce serait très sympa !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public class MainViewModel : ViewModelBase { public MainViewModel() { var window = ServiceLocator.Current.GetInstance<IAboutView>(); window.ShowDialog(); //ça ne marche pas. } }
Je vous remercie d'avance pour votre aide
Partager