Ejemplo n.º 1
0
        public override UIView GetViewForHeader(UITableView tableView, nint section)
        {
            var headerCell = InitCell <TVHeader>(CellIdentifierHeader, tableView);

            var sec         = (int)section;
            var modelHeader = Items.ElementAtOrDefault(sec);

            OnBindHeader(headerCell, modelHeader, ItemExpandedState.ElementAtOrDefault(sec), sec);

            headerCell.ClickableViewForExpansion.OnClick(() =>
            {
                ParentRowClicked?.Invoke(tableView, new RowParentClickEventArgs <TItem>((int)section, modelHeader));

                if (ItemExpandedState.ElementAtOrDefault(sec))
                {
                    CollapseItem(sec);
                }
                else
                {
                    ExpandItem(sec);
                }
            });

            if (_listHeaderCells.ContainsKey(sec))
            {
                _listHeaderCells[sec] = headerCell as IExpandable;
            }
            else
            {
                _listHeaderCells.Add(sec, headerCell as IExpandable);
            }

            return(headerCell.ContentView);
        }
Ejemplo n.º 2
0
 public override nint RowsInSection(UITableView tableview, nint section)
 {
     if (!ItemExpandedState.ElementAtOrDefault((int)section))
     {
         return(0);
     }
     return(Items.ElementAtOrDefault((int)section)?.SubExpandItems?.Count ?? 0);
 }