Вы пытались переопределить LayoutAttributesForElementsInRect
в пользовательском UICollectionViewFlowLayout
и установить атрибуты. Это происходит, когда UICollectionViewFlowLayout возвращает 2 атрибута для одной ячейки.
public class CustomFlowLayout : UICollectionViewFlowLayout
{
public override UICollectionViewLayoutAttributes[] LayoutAttributesForElementsInRect(CGRect rect)
{
UICollectionViewLayoutAttributes[] attributes = base.LayoutAttributesForElementsInRect(rect);
UICollectionViewLayoutAttributes[] newAttributes = new UICollectionViewLayoutAttributes[attributes.Length];
foreach (UICollectionViewLayoutAttributes attribute in attributes)
{
if ((attribute.Frame.X + attribute.Frame.Width<= this.CollectionViewContentSize.Width) &&
(attribute.Frame.Y + attribute.Frame.Height <= this.CollectionViewContentSize.Height))
{
newAttributes.Append(attribute);
}
}
return newAttributes;
}
}
Для более подробной информации вы можете проверить здесь
На событии CurrentCellDirtyStateChanged Вашего DataGridView можно назвать следующий код:
myDataGridView.EndEdit(DataGridViewDataErrorContexts.Commit)