private void SelectDossier() { Extensions = new ObservableCollection <Extension>(); Fichiers = new List <Fichier>(); Dossier = Dossier.SelectDossier(); RaisePropertyChanged("Dossier"); SelectedDossier = Dossier.PathDossier; RaisePropertyChanged("PathDossier"); if (SelectedDossier == "") { Result = "Aucun dossier choisi"; } else { try { Result = "En cours de chargement..."; RaisePropertyChanged("Result"); Task.Factory.StartNew(() => { List <Fichier> tmpFichiers = Fichier.GetFilesList(Dossier.PathDossier, WithFolders); Dispatcher.CurrentDispatcher.Invoke(() => { Fichiers = tmpFichiers; Result = ""; RaisePropertyChanged("Result"); RaisePropertyChanged("Fichiers"); if (Fichiers.Count() > 0) { Result = "En cours de chargement..."; Task.Factory.StartNew(() => { List <Extension> tmpExtensions = Extension.GetExtensionsList(Fichiers); Dispatcher.CurrentDispatcher.Invoke(() => { Extensions = tmpExtensions.CastToObservable(); RaisePropertyChanged("Extensions"); Result = "Chargement fini"; RaisePropertyChanged("Result"); }); }); } else if (Fichiers.Count() == 0) { Result = "Aucun fichier dans ce dossier"; RaisePropertyChanged("Result"); } }); }); } catch (Exception ex) { Result = "Erreur, veuillez choisir le dossier de nouveau"; RaisePropertyChanged("Result"); } } }