private IDisposable BindCommands(IDialogManager dialogManager) { OpenFolderCommand = ReactiveCommand.CreateFromObservable( () => dialogManager.OpenFolder(null), null, RxApp.MainThreadScheduler); return(OpenFolderCommand .SubscribeOn(RxApp.TaskpoolScheduler) .ObserveOn(RxApp.MainThreadScheduler) .SubscribeWithLog(directory => { var path = Path.GetFullPath(directory); if (Roots.All(r => r != path)) { Roots.Add(path); } })); }