2016-11-01 19 views
1

私はXamarinのフォームに次のコードを持っている:XamarinフォームのグリッドでTapGestureRecognizerを削除するには?

switch mode 
{ 
    case 1: 
    { 
     wordGrid.GestureRecognizers.Add(new TapGestureRecognizer 
     { 
     NumberOfTapsRequired = 1, 
     Command = new Command(() => 
     { 
      abc(); 

     }), 
     }); 
     break;    
    } 
    case 2: 
    { 
     if(start) 
     { 
     Device.StartTimer(TimeSpan.FromSeconds(5),() => 
     { 
      Device.BeginInvokeOnMainThread(() => 
      { 
       abc(); 
      }); 
     return false; 
     }); 
    } 
    break; 
    } 
} 

私のアプリケーションは(ABCを呼び出すためにタップイベント(モード== 1)またはタイマー(モード== 2)のいずれかを使用しています)。モード値は、私が設定画面に行き、それを変更することによって制御されます。

タップ設定からタイマー設定に切り替えた後、タイマー設定で数回戻ると、abc()が5秒ごとに実行されますが、グリッドをタップできます(そのタップイベントの機能を実行します) )。

タイマー設定でこのタップイベント(グリッド上)を削除するにはどうすればよいですか?

+0

なぜあなただ​​けのユーザーがすでにタップた場合に追跡できるグローバルなブール値を作成しませんか? –

答えて

0

は、ケース2でこれを追加します。

case 2: 
    { 
    if(start) 
    { 
     wordGrid.GestureRecognizers.Clear(); 
     ... 
    } 
    break; 
    } 
関連する問題