Esempio n. 1
0
        public override IEnumerable <DataElement> EnumerateAllElements(List <DataElement> knownParents)
        {
            if (Count == 0)
            {
                // Mutation might have erased all of our children
                if (origionalElement == null)
                {
                    yield break;
                }

                // First our origionalElement
                yield return(origionalElement);

                // Next our origionalElement element's children
                foreach (var item in origionalElement.EnumerateAllElements(knownParents))
                {
                    yield return(item);
                }
            }
            else
            {
                // Default to our base to enumerate array elements
                foreach (var item in base.EnumerateAllElements(knownParents))
                {
                    yield return(item);
                }
            }
        }
Esempio n. 2
0
        public void UpdateBindings(DataElement oldElem)
        {
            var oldParent = oldElem.parent;
            var newParent = this.parent;

            oldElem.parent = null;
            this.parent    = null;

            UpdateBindings(oldElem, oldElem);

            foreach (var elem in oldElem.EnumerateAllElements())
            {
                UpdateBindings(oldElem, elem);
            }

            oldElem.parent = oldParent;
            this.parent    = newParent;
        }