private void TvFolders_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { _logger.LogTrace($"{App.GetCaller()}() entered"); // We must set the selected directory here, because inexplicably, the treeview control does not allow you // to bind to the selected item directly TreeView tvSender = (sender as TreeView); try { TVDirectoryItem tvdi = (tvSender.SelectedItem as TVDirectoryItem); if (tvdi != null) { _vm.SelectedDirectory = tvdi; ReloadFileList(_vm.SelectedDirectory.FullPath); } } catch (Exception ex) { _logger.LogError(ex, "Exception in TvFolders_SelectedItemChanged()"); } _logger.LogTrace($"{App.GetCaller()}() exiting"); }
private void RefreshTVFromPath(string rootDirectory) { _logger.LogTrace($"{App.GetCaller()}() entered"); var newDirectoryList = new ObservableCollection <TVDirectoryItem>(); // TODO: Add support for multiple root directories /* * if (rootDirectory.Length == 3 && rootDirectory.Contains(@":\")) * rootDirName = rootDirectory; * else * rootDirName = System.IO.Path.GetDirectoryName(rootDirectory); */ var rootItem = new TVDirectoryItem(rootDirectory); newDirectoryList.Add(rootItem); // Change this in one go to avoid setting the listview into an intermediate state _vm.DirectoryList = newDirectoryList; _logger.LogTrace($"{App.GetCaller()}() exiting"); }