2016-11-01 3 views
1

Ich habe den folgenden Code in Xamarin Formen:Wie entfernt man TapGestureRecognizer auf einem Raster in Xamarin Forms?

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; 
    } 
} 

Meine Anwendung verwendet entweder Antippereignis (mode == 1) oder Timer (mode == 2) abc() aufzurufen. Der Moduswert wird von mir gesteuert, indem ich zu einem Einstellungsbildschirm gehe und ihn ändere.

Nachdem ich von der Tippeinstellung auf die Timereinstellung und einige Male bei einer Timereinstellung umgeschaltet habe, läuft abc() alle 5 Sekunden, aber ich kann immer noch auf das Gitter tippen (das dann die Funktion für dieses Tap-Ereignis ausführt)).

Wie kann ich dieses Tippereignis (im Grid) entfernen, wenn ich eine Timereinstellung verwende?

+0

Warum Sie nicht nur eine globale boolean schaffen, wenn der Benutzer bereits angezapft verfolgen können? –

Antwort

0

Fügen Sie diese in Fall 2:

case 2: 
    { 
    if(start) 
    { 
     wordGrid.GestureRecognizers.Clear(); 
     ... 
    } 
    break; 
    } 
Verwandte Themen