私のXamarinアプリケーションでは、状態に基づいて、Xamarinフォームビューにパン/ピンチジェスチャー認識機能を追加または削除する必要があります。ここにいくつかの疑似コードがあります:Xamarinビュー - ジェスチャー認識機能の再追加時のエラー
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);
}
}
ジェスチャー認識機能を追加するのは初めてです。後でそれらを取り除いても問題ありません。しかし、もう一度それらを追加しようとすると、無効な操作例外が発生します。「コレクションが変更されたため、列挙操作が実行されない可能性があります。
誰もがこの問題を克服する方法を知っているのだろうか。よろしく。
擬似コードではなく、実際のコードを表示できますか?なぜあなたが「pinchgr + = OnViewPinched; pangr + = OnViewPanned;」をしているのかわからない"pinchgr - = OnViewPinched; pangr - = OnViewPanned;" – jgoldberger
列挙された 'View'ループ内で' enableGestures'を呼び出せますか?すなわち、http://stackoverflow.com/a/605390/4984832これをどのようにしているのかの完全な文脈がなければ、答えはちょうど推測ですが、最終的には同じコレクションを列挙したり変更したりすることはできません。 – SushiHangover