private string GetName(VisualizationNode visualizationNode)
        {
            switch (NodeType)
            {
            case NodeType.Member:
                return(GetMemberName(visualizationNode));

            case NodeType.Object:
                return(visualizationNode.XamlInstruction.XamlType.Name);

            case NodeType.GetObject:
                return("Collection");

            case NodeType.NamespaceDeclaration:
                return("Namespace Declaration: Mapping " + visualizationNode.XamlInstruction.NamespaceDeclaration);

            case NodeType.Value:
                return($"\"{visualizationNode.XamlInstruction.Value}\"");

            case NodeType.Root:
                return("Root");
            }

            throw new InvalidOperationException("The instruction type {NodeType} cannot be handled.");
        }
예제 #2
0
        private static void OpenTreeVisualizer(VisualizationNode root)
        {
            var visualizerWindow = new TreeVisualizerWindow {
                DataContext = new TreeVisualizerViewModel(root)
            };

            visualizerWindow.Show();
        }
        public VisualizerNodeViewModel(VisualizationNode model)
        {
            this.model      = model;
            this.IsExpanded = true;
            children        = model.Children.Select(node => new VisualizerNodeViewModel(node)).ToList();

            CollapseBranchCommand = new RelayCommand(o => CollapseChildren());
            ExpandBranchCommand   = new RelayCommand(o => ExpandChildren());
        }
        private static string GetMemberName(VisualizationNode visualizationNode)
        {
            var mutableXamlMember = visualizationNode.XamlInstruction.Member as MutableXamlMember;

            if (mutableXamlMember != null)
            {
                if (!mutableXamlMember.IsAttachable)
                {
                    return(mutableXamlMember.Name);
                }

                return(mutableXamlMember.DeclaringType.Name + "." + mutableXamlMember.Name);
            }

            var member = visualizationNode.XamlInstruction.Member;

            return(member.IsDirective ? "[(" + member.Name + ") Directive]": member.Name);
        }
 private static void OpenTreeVisualizer(VisualizationNode root)
 {
     var visualizerWindow = new TreeVisualizerWindow { DataContext = new TreeVisualizerViewModel(root) };
     visualizerWindow.Show();
 }
예제 #6
0
 public TreeVisualizerViewModel(VisualizationNode root)
 {
     Nodes = new Collection <VisualizerNodeViewModel> {
         new VisualizerNodeViewModel(root)
     };
 }