Esempio n. 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);
            }
        }
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            try
            {
                if (!(value is FileSystemObject objectToExpand))
                {
                    return(null);
                }

                if (objectToExpand.Type == (int)ObjectType.Computer)
                {
                    return(FileSystemExplorerService.GetRootDirectories()
                           .Select(driveInfo => new FileSystemObject(driveInfo)).ToList());
                }
                else if (objectToExpand.Type == (int)ObjectType.Workspace)
                {
                    return(null);
                }
                else
                {
                    return(FileSystemExplorerService.GetChildDirectories(objectToExpand.Path)
                           .Select(directoryInfo => new FileSystemObject(directoryInfo)).ToList());
                }
            }
            catch
            {
                return(null);
            }
        }
Esempio n. 3
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));
                }
            }
        }