IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

MVVM & multithread


Sujet :

Windows Presentation Foundation

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 21
    Par défaut MVVM & multithread
    Bonjour,

    J'ai sur un projet l'architecture suivante:

    • Un ViewModel contenant une propriété ObservableCollection<string> FolderContent mise à jour par les évènements d'un FileSystemWatcher, donc sur un thread quelconque.
    • Une vue dont le datacontext est bindé sur le Viewmodel et contenant une ListBox dont le ItemsSources est bindé sur la propriété FolderContent


    A l'execution, lors d'une modification sur le dossier surveillé par le FileSystemWatcher, j'ai une exception System.NotSupportedException
    Ce type de CollectionView ne prend pas en charge les modifications de son SourceCollection à partir d'un thread différent du thread du Dispatcher.
    levée sur la ligne suivante dans mon ViewModel:
    Je voudrais changer cette ligne en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dispatcher.BeginInvoke(DispatcherPriority.DataBind, 
        new Action(delegate(){FolderContent.Clear();}));
    ou quelque chose de similaire, mais étant dans mon ViewModel, je n'ai pas accès au dispatcher.

    Existe-t-il un solution élégante pour résoudre ce problème?

    Merci d'avance
    n0n0

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    App.Current.MainWindow.Dispatcher et tu auras accès au Dispatcher.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 21
    Par défaut
    C'est tellement simple que j'ai presque honte d'avoir demandé...

    Merci Thomas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WinAPI C++] MultiThreading et PostMessage
    Par Gruik dans le forum Windows
    Réponses: 7
    Dernier message: 29/03/2004, 15h58
  2. [WinAPI C++] MultiThreading?
    Par Gruik dans le forum Windows
    Réponses: 2
    Dernier message: 25/03/2004, 00h08
  3. [Win32]App multithread
    Par billyboy dans le forum Windows
    Réponses: 5
    Dernier message: 25/09/2003, 09h57
  4. Multithreading sous HP Ux 11
    Par pykoon dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 18/10/2002, 23h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo