コード例 #1
0
ファイル: View.Pipeline.cs プロジェクト: vpenades/UberFactory
            private Node(INodeViewServices p, Guid nodeId)
            {
                System.Diagnostics.Debug.Assert(p.GetNodeDOM(nodeId) != null);

                _Parent = p;
                _NodeId = nodeId;
            }
コード例 #2
0
ファイル: View.Pipeline.cs プロジェクト: vpenades/UberFactory
            public static Node Create(INodeViewServices p, Guid nodeId)
            {
                if (p == null)
                {
                    return(null);
                }
                if (IsEmptyGuid(nodeId))
                {
                    return(null);
                }
                if (p.GetNodeDOM(nodeId) == null)
                {
                    return(null);
                }

                var node = new Node(p, nodeId);

                var propertyBindings = p.CreateNodeBindings(nodeId);

                // now we need to wrap some bindings with UI friendly wrappers
                var propertyViews = propertyBindings.Cast <BINDING>().ToArray();

                for (int i = 0; i < propertyViews.Length; ++i)
                {
                    var bv = propertyViews[i];

                    if (bv is SingleDependencyBinding singleBinding)
                    {
                        propertyViews[i] = SingleDependencyView._Create(node, singleBinding);
                    }
                    if (bv is MultiDependencyBinding multiBinding)
                    {
                        propertyViews[i] = ArrayDependencyView._Create(node, multiBinding);
                    }
                }

                node._BindingsViews = propertyViews;

                return(node);
            }