internal void ConfigureCellAt(DropdownCell cell, int index)
            {
                Console.WriteLine("ConfigureCellAt " + index);
                bool _ = dropdownReference.TryGetTarget(out Dropdown dropdown);

                if (index >= 0 && index < dropdown.dataSource.Count())
                {
                    cell.AccessibilityIdentifier = dropdown.dataSource[index].ToString();
                }

                cell.TitleLabel.TextColor = dropdown.textColor;
                cell.TitleLabel.Font      = dropdown.textFont;
                cell.SelectedColor        = dropdown.SelectionBackgroundColor;

                cell.TitleLabel.Text = dropdown.dataSource[index].ToString();

                if (dropdown.customCellConfiguration != null)
                {
                    dropdown.customCellConfiguration(index, dropdown.dataSource[index], cell);
                }
            }
        private nfloat FittingWidth()
        {
            if (templateCell == null)
            {
                templateCell = cellNib.Instantiate(null, null)[0] as DropdownCell;
            }

            nfloat maxWidth = 0;

            for (int index = 0; index < dataSource.Count(); index++)
            {
                var ds = tableView.Source as DropdownDatasource;
                ds.ConfigureCellAt(templateCell, index);
                templateCell.Bounds = new CGRect(templateCell.Bounds.Location, new CGSize(templateCell.Bounds.Width, CellHeight));

                var w = templateCell.SystemLayoutSizeFittingSize(UILayoutFittingCompressedSize).Width;
                if (w > maxWidth)
                {
                    maxWidth = w;
                }
            }

            return(maxWidth);
        }