Xamarin视图 - 重新添加手势识别器

时间:2017-01-20 00:31:56

标签: xamarin xamarin.forms

在我的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被修改;枚举操作可能无法执行。”

想知道是否有人知道如何克服这个问题。问候。

1 个答案:

答案 0 :(得分:1)

看起来您正在循环中修改可枚举的集合。

不是循环遍历IEnumerable,而是循环遍历.ToList().ToArray()版本。