I have created a custom control, CommandBar, essentially a wrapper for ToolBarWindow32 (the Win32 toolbar control). It has a collection of CommandBarItem objects. Each CommandBarItem is derived from Component. CommandBarItemCollection is derived from CollectionBase. I have also tried ICollection/IList/IEnumerable. Both CommandBar and CommandBarItem have item collections. The item collections in CommandBar and CommandBarItem are marked as DesignerSerializationVisibility.Content. I can add items successfully to the item collection of the CommandBar. I can also add items successfully to the collections of the items in the CommandBar item collection. But when I go to the collections of items of the collections of items of the items in the CommandBar collection and I add a new CommandBarItem with the Collection Editor, I am greeted with "Object reference not set to an instance of an object" when I click OK. Thus, I am forced to click Cancel (the message keeps appearing everytime I click OK), and the items I just added are lost. How can I get the items to persist on infinite depth levels? Do I need an object referring back to the parent collection, like Owner? How did MS do it with the TreeView and Menu controls? I am stuck and I need your help.