/// <summary> /// この要素を指定した要素の子要素としてコピーします。</summary> /// public void CopyTo(TreeElement aTargetElement) { if (aTargetElement == null) { throw new ArgumentNullException("aTargetElement"); } aTargetElement.Add(( TreeElement )this.Clone()); }
/// <summary> /// この要素を指定した要素の子要素として移動します。</summary> /// public void MoveTo(TreeElement aTargetElememnt) { if (aTargetElememnt == null) { throw new ArgumentNullException("aTargetElememnt"); } if (this.IsContains(aTargetElememnt)) { throw new InvalidOperationException("移動先の要素はこの要素の子要素です。またはこの要素自身です。"); } TreeElement moveElement = this; this.Remove(); aTargetElememnt.Add(moveElement); }
/// <summary> /// TreeElement のディープコピーを取得します。</summary> /// public Object Clone() { TreeElement cloneElement = new TreeElement(Value, Name, Kind); if (HasChild) { foreach (TreeElement element in ChildElements) { TreeElement newSubElement = new TreeElement(element.Value, element.Name, element.Kind); cloneElement.Add(newSubElement); if (element.HasChild) { TreeElement childElement = ( TreeElement )element.Clone(); newSubElement.AddElements(childElement.ChildElements); } } } return(cloneElement); }