2017-09-26 4 views
-2

J'écris une application WPF et j'ai MediaElement -Property appelé VideoPlayer dans une classe appelée ViewmodelVideos.MediaElement.Source jette 'System.InvalidOperationException'

Quand je dis

ViewModelVideos.VideosPlayer.Source = new Uri(text); 

je reçois une exception:

Exception thrown: 'System.InvalidOperationException' in WindowsBase.dll 

Je ne peux pas comprendre pourquoi les thats ne fonctionne pas. Des idées?

Edit:

« texte » est une URL valide que je peux mettre dans mon navigateur et cela fonctionne. Aucun https, simple, http: // ...

+1

Avoir un MediaElement dans un modèle de vue peut paraître étrange. Un modèle de vue ne doit contenir aucun élément de vue. En plus de cela, je suppose que vous faites l'appel en dehors du fil de l'interface utilisateur. Quel est le message d'exception? – Clemens

+0

@Clemens Pouvez-vous me dire comment obtenir le message d'exception? Le programme ne s'arrête pas, seul le message d'exception 'Exception thrown: 'System.InvalidOperationException' dans WindowsBase.dll' apparaît dans la fenêtre de sortie. Il n'y a pas d'essayer de l'attraper non plus. – murkr

+0

@Clemens la remarque au sujet de faire l'appel en dehors du fil d'ui semble sur place. Savez-vous comment définir la source de l'extérieur du fil de l'interface utilisateur? – murkr

Répondre

0

@Clemens commentaire a fait l'affaire:

Le problème était que je faisais l'appel en dehors du thread d'interface utilisateur.

solution a été

ViewModelVideos.VideosPlayer.Dispatcher.Invoke(() => ViewModelVideos.VideosPlayer.Source = new Uri(text));