2017-02-20 2 views
0

Ich habe eine Karussellansicht mit mehreren Bildern und ich möchte bekommen, was angeklickt oder geklopft wurde. Ich habe versucht, einen x hinzuzufügen: Name, aber ich kann nicht auf diese Eigenschaft in einem GestureRecognizer zugreifen.Get Bild geklickt in CarouselView

Das ist mein XAML. Ich habe 4 Seiten mit je 2 Bildern. Ich würde das x: Name des Bildes geklickt bekommen oder etwas, das ich weiß wo das Bild geklickt wurde.

<Image Grid.Row="0" Aspect="Fill" Source="{Binding Image1}" x:Name="{Binding ImageName1}" > 
      <Image.GestureRecognizers> 
        <TapGestureRecognizer 
          Tapped="ClickImage" /> 
      </Image.GestureRecognizers> 
      </Image> 
<Image Grid.Row="1" Aspect="Fill" Source="{Binding Image2}" x:Name="{Binding ImageName2}"> 
      <Image.GestureRecognizers> 
       <TapGestureRecognizer 
         Tapped="ClickImage" /> 
      </Image.GestureRecognizers> 
      </Image> 

Antwort

0

Versuchen Sie dies und sehen, ob es funktioniert:

eine classid auf das Bild in XAML hinzu:

ClassId ="{Binding Image2}" 

Und es wie folgt verwenden. imageString enthält das eindeutige Bild.

async void ClickImage(object sender, EventArgs eventArgs) 
{ 
    Image image = (Image)sender; 
    string imageString = image.ClassId; 
    System.Diagnostics.Debug.WriteLine(imageString); 

} 
+0

Thank you !! Es ist genau das, was ich gesucht habe! – ivanbm

+0

Kein Problem! :) Froh, dass ich helfen konnte – Martman

0

Was Sie tun können, ist für jedes Bild eine andere angezapft Geste Handler setzen wie

<Image Grid.Row="0" Aspect="Fill" Source="{Binding Image1}" x:Name="{Binding ImageName1}" > 
      <Image.GestureRecognizers> 
        <TapGestureRecognizer 
          Tapped="ClickImage1" /> 
      </Image.GestureRecognizers> 
      </Image> 
<Image Grid.Row="1" Aspect="Fill" Source="{Binding Image2}" x:Name="{Binding ImageName2}"> 
      <Image.GestureRecognizers> 
       <TapGestureRecognizer 
         Tapped="ClickImage2" /> 
      </Image.GestureRecognizers> 
      </Image>