0

Je rencontre un problème de violation d'accès dans l'application Windows Phone 8.1 lors de l'exécution sur un périphérique sans trace de pile. J'ai trouvé une réponse, appeler le répartiteur pour naviguer mais je ne sais pas comment le faire avec mvvmcross. Aidez-moi, s'il vous plaît.Windows Phone 8.1 Violation d'accès lors de la navigation vers la nouvelle vue

Access Violation cause and solution from codeproject

Tout semble bon dans mon code peut-être ce qui cause l'intérieur ShowViewModel Méthode. Aidez-moi, s'il vous plaît.

Select click enter 14:24:56.2863139 
mvx:Diagnostic: 5.99 Showing ViewModel PlayMantraViewModel 
VM ctor enter 14:24:56.5572456 
VM ctor leave 14:24:56.5572456 
VM Init enter 14:24:56.5728871 
VM init leave 14:24:56.5885270 
appstate:Active 
Select click leave 14:24:56.6041698 
The program '[4028] Japam.WinPhone.exe' has exited with code 
-1073741819 (0xc0000005) 'Access violation'. 

J'ai un total de 3 vues, la navigation vers une autre vue fonctionne très bien.

ShowViewModel<PlayMantraViewModel>(new { mid = m.MantraID }); 

Ce que j'appelle dans le modèle de vue

+0

Avez-vous des ressources managées qui n'ont pas été nettoyées dans le View/ViewModel à partir duquel vous naviguez? – Cheesebaron

+0

@Cheesebaron non parce qu'il navigue bien à une autre vue, une vue est d'enregistrer de l'audio et un autre pour lire l'audio enregistré avec une tâche d'arrière-plan. La vue de recodage fonctionne très bien, mais ne lit pas la vue. Les deux fonctionnent dans l'émulateur. – Krishna

+0

Juste parce qu'il navigue bien entre les autres vues, ne signifie pas magiquement que vous n'avez pas à nettoyer après vous dans les autres. Ce qui me déclenche ici, c'est que vous enregistrez de l'audio, vous ne l'avez probablement pas nettoyé correctement et cela échoue lorsque vous vous en éloignez. – Cheesebaron

Répondre

0

Je l'ai pensé à elle, je dois utiliser répartiteur

this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,() => { 
       ViewModel.MantraSelectedCommand.Execute(e.ClickedItem); 
      }); 

Cela a bien fonctionné.