public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
        {
            if (!CachedCells.TryGetValue(indexPath, out UITableViewCell cell))
            {
                var item = GetItemAt(indexPath);
                cell = GetOrCreateCellFor(tableView, indexPath, item);

                var bindable = cell as IMvxBindable;

                if (bindable != null)
                {
                    var bindingContext = bindable.BindingContext as MvxTaskBasedBindingContext;
                    if (bindingContext != null && tableView.RowHeight == UITableView.AutomaticDimension)
                    {
                        bindingContext.RunSynchronously = true;
                    }

                    InvokeOnMainThread(() => bindable.DataContext = GetItemAt(indexPath));
                }
            }

            return(cell);
        }
 public void ClearCache()
 {
     CachedHeight.Clear();
     CachedCells.Clear();
 }