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
Avez-vous des pistes, s'il vous plait ?Le thread appelant doit être en mode STA, comme l'exigent de nombreux composants de l'interface utilisateur.
System.InvalidOperationException
Merci.
Partager