在我的Xamarin应用程序中,基于状态,我需要在Xamarin Forms视图中添加或删除pan / pinch手势识别器。这是一些伪代码:
public void enableGestures(Xamarin.Forms.View v, bool isEnable) {
if (isEnable) {
pinchgr += OnViewPinched;
pangr += OnViewPanned;
v.GestureRecognizers.Add(pinchgr);
v.GestureRecognizers.Add(pangr);
}else {
pinchgr -= OnViewPinched;
pangr -= OnViewPanned;
v.GestureRecognizers.Remove(pinchgr);
v.GestureRecognizers.Remove(pangr);
}
}
第一次添加手势识别器工作正常。即使删除它们以后工作正常。但是,当我再次尝试添加它们时,我得到一个无效的操作异常“Collection被修改;枚举操作可能无法执行。”
想知道是否有人知道如何克服这个问题。问候。
答案 0 :(得分:1)
看起来您正在循环中修改可枚举的集合。
不是循环遍历IEnumerable,而是循环遍历.ToList()
或.ToArray()
版本。