CollectionView.DeleteItems抛出异常NSInternalInconsistencyException

时间:2015-07-28 00:06:45

标签: ios xamarin uicollectionview

当我尝试在我的UICollectionView上调用DeleteItems时,我收到此异常。我已经google了,大多数人都说他们通过在调用DeleteItems后不在CollectionView上调用ReloadData来解决这个问题,但我知道我不是在调用它。我甚至覆盖了它并在ReloadData上设置了一个断点,并确认它没有被调用。

this.InvokeOnMainThread(() => 
{
    CollectionView.DeleteItems (new NSIndexPath [] { indexPath });
});

抛出Objective-C异常。名称:NSInternalInconsistencyException原因:无效更新:第0节中的项目数无效。更新(5)后现有部分中包含的项目数必须等于更新前该部分中包含的项目数(5),加上或减去从该部分插入或删除的项目数(插入0,删除1),加上或减去移入或移出该部分的项目数(0移入,0移出)。

1 个答案:

答案 0 :(得分:1)

看起来我需要在调用DeleteItems之前更新与我的数据源绑定的列表:

this.InvokeOnMainThread(() => 
{
    this.MyList.RemoveAt(indexPath.Row);
    CollectionView.DeleteItems (new NSIndexPath [] { indexPath });
});