internal static void DoAttach <K, T>(this IAListTreeObserver <K, T> observer, AListBase <K, T> list, AListNode <K, T> root) { var childrenFirst = observer.Attach(list); observer.RootChanged(list, root, false); if (childrenFirst != null && root != null) { AddAllRecursively(observer, childrenFirst.Value, root); } }