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.NotSupportedExceptionlevée sur la ligne suivante dans mon ViewModel:Citation:
Ce type de CollectionView ne prend pas en charge les modifications de son SourceCollection à partir d'un thread différent du thread du Dispatcher.
Je voudrais changer cette ligne enCode:FolderContent.Clear();
ou quelque chose de similaire, mais étant dans mon ViewModel, je n'ai pas accès au dispatcher.Code:
1
2 Dispatcher.BeginInvoke(DispatcherPriority.DataBind, new Action(delegate(){FolderContent.Clear();}));
Existe-t-il un solution élégante pour résoudre ce problème?
Merci d'avance
n0n0