private Node(INodeViewServices p, Guid nodeId) { System.Diagnostics.Debug.Assert(p.GetNodeDOM(nodeId) != null); _Parent = p; _NodeId = nodeId; }
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); }