예제 #1
0
        private void ExpandFolder(TreeViewItem item)
        {
            item.Items.Clear();
            try
            {
                foreach (string dir in Directory.GetDirectories(((TreeNode)item.Tag).Path))
                {
                    TreeViewItem subitem = new TreeViewItem
                    {
                        Header = dir.Substring(dir.LastIndexOf("\\") + 1),
                        Tag    = new TreeNode()
                        {
                            Type = NodeDataType.Folder,
                            Path = dir
                        },
                        FontWeight = FontWeights.Normal,
                    };

                    if (ThumbMarker.HasThumpMarker(dir))
                    {
                        subitem.Foreground = new SolidColorBrush(Colors.Orange);
                    }

                    subitem.Items.Add(null);
                    subitem.Expanded += new RoutedEventHandler(Folder_Expanded);
                    item.Items.Add(subitem);
                }

                foreach (string file in Directory.GetFiles(((TreeNode)item.Tag).Path))
                {
                    TreeViewItem subitem = new TreeViewItem
                    {
                        Header = Path.GetFileName(file),
                        Tag    = new TreeNode()
                        {
                            Type = NodeDataType.File,
                            Path = file
                        },
                        FontWeight = FontWeights.Normal,
                    };

                    item.Items.Add(subitem);
                }
            }
            catch (Exception ex)
            {
                Log.Instance.Error(ex);
            }
        }
예제 #2
0
        private void LeftTree_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e)
        {
            if (sender is TreeView tv)
            {
                if (tv.SelectedItem is TreeViewItem selectedItem)
                {
                    if (selectedItem.Tag is TreeNode tag)
                    {
                        switch (tag.Type)
                        {
                        case NodeDataType.Folder:
                            var contextMenu = leftTree.Resources["sourceTreeContext"] as ContextMenu;

                            if (ThumbMarker.HasThumpMarker(tag.Path))
                            {
                                (contextMenu.Items[2] as MenuItem).Visibility = Visibility.Collapsed;
                                (contextMenu.Items[3] as MenuItem).Visibility = Visibility.Visible;
                            }
                            else
                            {
                                (contextMenu.Items[2] as MenuItem).Visibility = Visibility.Visible;
                                (contextMenu.Items[3] as MenuItem).Visibility = Visibility.Collapsed;
                            }

                            leftTree.ContextMenu = contextMenu;

                            break;

                        default:
                            leftTree.ContextMenu = null;
                            break;
                        }
                    }
                }
            }
        }