void FileTree_AfterSelect(object sender, TreeViewEventArgs e) { var node = fileTree.SelectedNode; if (node == null) { _core.SetSelectedItem(null, null); return; } int?number = int.TryParse(fileTree.SelectedNode?.Name, out var tempNumber) ? tempNumber : (int?)null; if (number.HasValue) { node = node.Parent; } string filename = ""; while (node != _rootNode) { filename = node.Name + "\\" + filename; node = node.Parent; } filename = filename.TrimEnd('\\'); _core.SetSelectedItem(filename, number); var asset = _core.SelectedObject; textName.Text = asset?.Name; _activeViewer = GetViewerForAsset(asset); _imageViewer.Visible = _activeViewer == _imageViewer; _textViewer.Visible = _activeViewer == _textViewer; _soundPlayer.Visible = _activeViewer == _soundPlayer; UpdateAssetDescription(); }