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