private void ListViewItem_OnDoubleClick(object sender, MouseButtonEventArgs e) { e.Handled = true; if (!(sender is ListViewItem currentNode)) { return; } if (!(currentNode.Content is FileSystemObject content)) { return; } TemplateType = content.Type == (int)ObjectType.Computer ? 0 : 1; if (content.Type == (int)ObjectType.Directory || content.Type == (int)ObjectType.Drive) { ExplorerView.Items.Clear(); foreach (var childDirectory in FileSystemExplorerService.GetChildDirectories(content.Path)) { ExplorerView.Items.Add(new FileSystemObject(childDirectory)); } foreach (var childFile in FileSystemExplorerService.GetChildFiles(content.Path)) { ExplorerView.Items.Add(new FileSystemObject(childFile)); } } else if (content.Type == (int)ObjectType.File) { Process.Start(@content.Path); } }
private void TreeViewItem_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { e.Handled = true; var currentNode = sender as TreeViewItem; ExplorerView.Items.Clear(); if (!(currentNode?.Header is FileSystemObject parent)) { return; } TemplateType = parent.Type == (int)ObjectType.Computer ? 0 : 1; if (currentNode.ItemsSource == null) { return; } if (parent.Type == (int)ObjectType.Computer) { foreach (var rootDirectory in FileSystemExplorerService.GetRootDirectories()) { ExplorerView.Items.Add(new FileSystemObject(rootDirectory)); } } else { foreach (var childDirectory in FileSystemExplorerService.GetChildDirectories(parent.Path)) { ExplorerView.Items.Add(new FileSystemObject(childDirectory)); } foreach (var childFile in FileSystemExplorerService.GetChildFiles(parent.Path)) { ExplorerView.Items.Add(new FileSystemObject(childFile)); } } }