public void Insert(SceneNode nodeToInsert) { ISceneNodeCollection <SceneNode> collectionForProperty = this.SceneNode.GetCollectionForProperty((IPropertyId)this.Property); if (collectionForProperty.FixedCapacity.HasValue && collectionForProperty.Count >= collectionForProperty.FixedCapacity.Value) { PropertySceneInsertionPoint.Cleanup(collectionForProperty[collectionForProperty.Count - 1]); } collectionForProperty.Add(nodeToInsert); ControlTemplateElement controlTemplateElement = this.SceneNode as ControlTemplateElement; if (controlTemplateElement == null) { return; } ITypeId templateTargetTypeId = controlTemplateElement.ControlTemplateTargetTypeId; VisualStateManagerSceneNode.AddDefaultStates(nodeToInsert, (SceneNode)controlTemplateElement, templateTargetTypeId); }