protected override bool TryGetItemByIndex(int index, out EnvDTE.CodeElement element)
        {
            var node = LookupNode();

            var attributeArgumentNodes = CodeModelService.GetAttributeArgumentNodes(node);

            if (index >= 0 && index < attributeArgumentNodes.Count())
            {
                element = (EnvDTE.CodeElement)CodeAttributeArgument.Create(this.State, this.ParentAttribute, index);
                return(true);
            }

            element = null;
            return(false);
        }
        protected override bool TryGetItemByName(string name, out EnvDTE.CodeElement element)
        {
            var node         = LookupNode();
            var currentIndex = 0;

            foreach (var child in CodeModelService.GetAttributeArgumentNodes(node))
            {
                var childName = CodeModelService.GetName(child);
                if (childName == name)
                {
                    element = (EnvDTE.CodeElement)CodeAttributeArgument.Create(this.State, this.ParentAttribute, currentIndex);
                    return(true);
                }

                currentIndex++;
            }

            element = null;
            return(false);
        }