/// <summary>
        /// Finds a node with given id (recusrive when needed)
        /// </summary>
        public static IDependencyNode FindNode(this IDependencyNode self, DependencyNodeId id, bool recursive = false)
        {
            IDependencyNode resultNode = null;

            foreach (var child in self.Children)
            {
                if (child.Id.Equals(id))
                {
                    resultNode = child;
                }
                else if (recursive)
                {
                    resultNode = FindNode(child, id, recursive);
                }

                if (resultNode != null)
                {
                    break;
                }
            }

            return(resultNode);
        }
 public IDependencyNode GetDependencyNode(DependencyNodeId nodeId)
 {
     return(Nodes.FirstOrDefault(x => x.Id.Equals(nodeId)));
 }