Salut!
Je fais une application en WPF en MVVM.

J'utilise le même systeme de naviguation que sur cet article:
http://badger.developpez.com/tutorie...-le-meme-code/

Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 public class NavigationService : INavigationService
    {
        private readonly Frame _frame;
 
        public NavigationService(Frame frame)
        {
            if (frame == null) throw new ArgumentNullException("frame");
            _frame = frame;
        }
 
        public void Navigate(UIElement newPage)
        {
            _frame.Navigate(newPage);
        }
    }

Pour naviguer:

Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 NavigationService navigationService = new NavigationService(NavigationFrame);
            ApplicationServiceProvider.ApplicationService.AddService(typeof(INavigationService), navigationService);
 
            //affichage de la page de login
            LoginViewModel loginViewModel = new LoginViewModel();
            LoginView loginView = new LoginView(loginViewModel);
 
            ApplicationServiceProvider.ApplicationService.NavigationService.Navigate(loginView);

Je change les pages sans aucun problème. Sauf à un moment, où j'utilise un objet qui a un évenement et où je change de page de la même manière.

Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
void PeripheralService_OnButtonPressed(object sender, BuzzIO.BuzzOnButtonPressedEventArgs args)
        {
 PageViewModel viewModel = new PageViewModel();
            PageView view = new LoginView(viewModel);
 
            ApplicationServiceProvider.ApplicationService.NavigationService.Navigate(view);  
}

Or j'obiens cette erreure lors de l'appel au constructeur du PageViewModel
Le thread appelant doit être en mode STA, comme l'exigent de nombreux composants de l'interface utilisateur.

System.InvalidOperationException
Avez-vous des pistes, s'il vous plait ?
Merci.