private void FilterRootItems()
        {
            var hidden = RootItems.Where(i => !_search.FileResults.Any(r => r.File.Path.StartsWith(i.Path)))
                         .ToArray();

            foreach (var item in hidden)
            {
                item.Dispose();
                _uiDispatch.Do(() => RootItems.Remove(item));
            }

            // show info if no results
            SearchFoundNoMatch = _search.FileResults.Any() ? null : new SearchFoundNoMatchViewModel();
            PropertyChanged.Raise(this, nameof(SearchFoundNoMatch));
        }
        private void CreateRootItems()
        {
            foreach (var disposable in RootItems)
            {
                disposable.Dispose();
            }

            _uiDispatch.Do(() =>
            {
                RootItems.Clear();

                CreateContainedDirectories();
                CreateContainedFiles();
            });

            SearchFoundNoMatch = null;
            PropertyChanged.Raise(this, nameof(SearchFoundNoMatch));
        }