public CategoryCell Add(string text, string xcat, string ycat)
 {
     var item = new CategoryCell(text,xcat,ycat);
     this.Items.Add(item);
     return item;
 }
        public CategoryCell Add(string text, string xcat, string ycat, IList<string> subitems)
        {
            var item = new CategoryCell(text, xcat, ycat);

            item.Item.Items = subitems.Select(t=>new CategoryItem(t)).ToList();
            this.Items.Add(item);
            return item;
        }
 private void draw_cell(CategoryCell cell_item, BL.Container n_row_col)
 {
     var n_cell = n_row_col.AddContainer(BL.Direction.LeftToRight, CellWidth, CellHeight);
     n_cell.ChildSpacing = CellVerticalSeparation/2;
     
     var cell_data = new RenderItem();
     cell_data.CategoryCell = cell_item;
     cell_data.ShapeText = cell_item.Item.Text;
     cell_data.Cells = cellformat;
     n_cell.Data = cell_data;
     
     if (cell_item.Item.Items != null)
     {
         foreach (var sub_cat_items in cell_item.Item.Items)
         {
             var subn_cell = n_cell.AddBox(CellWidth, CellHeight);
             var subcell_data = new RenderItem();
             subcell_data.CategoryCell = null;
             subcell_data.ShapeText = sub_cat_items.Text;
             subcell_data.Cells = subcellformat;
             subn_cell.Data = subcell_data;
         }
         n_cell.AddBox(0.25, 0.25);
     }
 }