예제 #1
0
        private IDisposable BindAdditions()
        {
            return(Roots.ObserveAdditions()
                   .SubscribeOn(RxApp.TaskpoolScheduler)
                   .ObserveOn(RxApp.MainThreadScheduler)
                   .SubscribeWithLog(path =>
            {
                var watcher = new DirectoryWatcher(path);
                var builder = new FileExplorerNodeBuilder(watcher, path);

                var subscription = builder.GetActions()
                                   .SubscribeOn(RxApp.TaskpoolScheduler)
                                   .ObserveOn(RxApp.MainThreadScheduler)
                                   .SubscribeWithLog(builder.HandleAction);

                Nodes.Add(builder.Root);

                _roots.Add(path, builder.Root);
                _disposables.Add(path, subscription);
            }));
        }