2016-04-25 7 views
0

Ich möchte eine Liste von Elementen anzeigen, die jeweils mehrere Schaltflächen und andere abgreifbare Elemente enthalten. Das Problem ist, dass standardmäßig jedes Element in einer Listview tappbar ist. Wie deaktiviere ich das und binde tappable Ereignisse an Elemente innerhalb eines Listview?Xamarin.Forms - binden mehrere Schaltfläche Klicks in Listview Zelle?

+0

Was auf Befehle klickt, wie ich weiß, wird die Listenansicht nur auf Tippen reagiert, die nicht auf Elemente im Inneren der Zellen sind die den Hahn selbst handhaben. Zumindest habe ich so etwas umgesetzt. – germi

+0

wie Mehrfachauswahl? –

Antwort

0

Wenn Sie tatsächliche Button-Elemente verwenden, sollten Sie nichts Besonderes tun müssen. Jeder Button reagiert auf sein eigenes Clicked-Ereignis. Das Tapped-Ereignis der Zeile sollte nur für Regionen außerhalb der Schaltflächenelemente ausgelöst werden.

1

Sie müssen nur eine benutzerdefinierte Ansicht Zelle erstellen:

public class MyCell : ViewCell 
{ 
    public MyCell() 
    { 
     var button1 = new Button {Text = "Button 1"}; 
     button1.Clicked += (sender1, e1) => { 
      // Action for button 1 
     }; 
     var button2 = new Button {Text = "Button 2"}; 
     button2.Clicked += (sender, e) => { 
      // Action for Button 2 
     }; 
     View = new StackLayout 
     { 
      Orientation = StackOrientation.Horizontal, 
      Children = { 
       button1, 
       button2, 
      } 
     }; 
     View.GestureRecognizers.Add(new TapGestureRecognizer()); 
    } 
} 

Der letzte TapGestureRecognizer ist die Auswahl (und auf Android-Anzeige) der Berührung zu vermeiden.

und integrieren diese in Ihre Listview

public DemoPage() 
{ 
    var listView = new ListView 
    { 
     ItemsSource = new[] {"cell 1", "cell 2", "cell 3", "cell 4"}, 
     ItemTemplate = new DataTemplate(typeof (MyCell)) 
    }; 
    Content = listView; 
} 

Sie können auch binden Sie die Taste

Verwandte Themen