当我尝试在我的UICollectionView上调用DeleteItems时,我收到此异常。我已经google了,大多数人都说他们通过在调用DeleteItems后不在CollectionView上调用ReloadData来解决这个问题,但我知道我不是在调用它。我甚至覆盖了它并在ReloadData上设置了一个断点,并确认它没有被调用。
this.InvokeOnMainThread(() =>
{
CollectionView.DeleteItems (new NSIndexPath [] { indexPath });
});
抛出Objective-C异常。名称:NSInternalInconsistencyException原因:无效更新:第0节中的项目数无效。更新(5)后现有部分中包含的项目数必须等于更新前该部分中包含的项目数(5),加上或减去从该部分插入或删除的项目数(插入0,删除1),加上或减去移入或移出该部分的项目数(0移入,0移出)。
答案 0 :(得分:1)
看起来我需要在调用DeleteItems之前更新与我的数据源绑定的列表:
this.InvokeOnMainThread(() =>
{
this.MyList.RemoveAt(indexPath.Row);
CollectionView.DeleteItems (new NSIndexPath [] { indexPath });
});