在视图模型中,我有一个observablecollection,它将在构造函数中创建。在该方法中,我调用RefreshCommand,它执行以下步骤:
此项目将显示在ListView中,并且非常适用于Android(模拟器和真实设备)以及iOS Simulator,但是一旦我将其部署到真实的iOS设备(在本例中为iPhone 6)上,该应用崩溃..
这里是例外的一部分:
“引发Object-C异常。名称:NSInternalInconsistencyException原因:无效的更新:区域0中的项目数无效。更新(1)之后现有区域中包含的项目数必须等于该区域中包含的项目数。更新前的那个部分(1),加上或减去从该部分中插入或删除的项目数(插入1,删除0)和加上或减去移入或移出该部分的项目数(移入0,移入0)移出)。“
我已经尝试过在GUIThread中移动clear和fill动作,并且还尝试了使用线程安全集合:https://codetraveler.io/2019/09/11/using-observablecollection-in-a-multi-threaded-xamarin-forms-application/
但是应用程序一次又一次崩溃。对我有用的解决方法是将observablecollection更改为普通列表...
任何想法为何只能在真实设备上发生?
我有类似的错误,为我解决的问题是将新的ObservableCollection重新分配给绑定变量,而不是一一清除并添加它们。因此,基本上,我创建了要在observableCollection中使用的项目的列表,然后将其分配为:
boundVar = new ObservableCollection(list);