Пример #1
0
        public InspectTreeNode3D(InspectTreeNode node, InspectTreeState state)
        {
            void NodePropertyChanged(object sender, PropertyChangedEventArgs args)
            {
                var senderNode = sender as InspectTreeNode;

                switch (args.PropertyName)
                {
                case nameof(InspectTreeNode.Children):
                    break;

                case nameof(InspectTreeNode.IsSelected):
                case nameof(InspectTreeNode.IsMouseOver):
                    UpdateMaterial();
                    break;

                case nameof(InspectTreeNode.IsExpanded):
                    foreach (var child in Children.OfType <InspectTreeNode3D> ())
                    {
                        child.IsFlattened = !senderNode.IsExpanded;
                    }
                    break;
                }
            }

            Node = node;
            node.PropertyChanged += NodePropertyChanged;
            childIndex            = state.AddChild(node.View);
        }
Пример #2
0
        InspectViewNode IInspectTree3DNode <InspectViewNode> .BuildChild(InspectTreeNode node, InspectTreeState state)
        {
            var child = new InspectViewNode(node, state);

            node.Build3D(child, state);
            return(child);
        }
Пример #3
0
        void NodePropertyChanged(object sender, PropertyChangedEventArgs args)
        {
            InspectTreeNode senderNode = sender as InspectTreeNode;

            switch (args.PropertyName)
            {
            case nameof(Node.IsSelected):
            case nameof(Node.IsMouseOver):
            case nameof(Node.IsExpanded):
                UpdateState();
                break;
            }
        }
Пример #4
0
 public InspectViewNode(InspectTreeNode node, InspectTreeState state)
 {
     Node = node;
     node.PropertyChanged += NodePropertyChanged;
     this.childIndex       = state.AddChild(node.View);
 }