Пример #1
0
        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);
            }
        }
Пример #2
0
        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));
                }
            }
        }