You can use another design: feed your control with your items collection and interface like
string opIndex(size_t item, size_t subItem); string opIndexAssign(size_t item, size_t subItem, string newValue); void sort(size_t subItem, bool asc=true); which will be used by the control to present the items. Then implement and fill your collection as you want.