I am using recursion. I was just trying to avoid the time when a TextBox can contain other controls. Whis is terrifying, but possible in Avalon.

Your version certainly works though.