I have the following code
<Grid Grid.Row="2" Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="1*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="33*"/>
<ColumnDefinition Width="33*" />
<ColumnDefinition Width="33*" />
</Grid.ColumnDefinitions>
<Image Source="info.png"
WidthRequest="100"
HeightRequest="35"
VerticalOptions="Center"
HorizontalOptions="Center"
Grid.Row="0" Grid.Column="0">
<Image.GestureRecognizers>
<TapGestureRecognizer
BindingContext="{Binding Source={x:Reference itemsView}, Path=BindingContext}"
Command="{Binding InfoCommand}"
CommandParameter="{Binding Source={x:Reference mainFrame}, Path=BindingContext}" />
</Image.GestureRecognizers>
</Image>
<Image Source="details.png"
WidthRequest="100"
HeightRequest="35"
VerticalOptions="Center"
HorizontalOptions="Center"
Grid.Row="0" Grid.Column="1">
<Image.GestureRecognizers>
<TapGestureRecognizer
BindingContext="{Binding Source={x:Reference itemsView}, Path=BindingContext}"
Command="{Binding ShowCommand}"
CommandParameter="{Binding Source={x:Reference mainFrame}, Path=BindingContext}" />
</Image.GestureRecognizers>
</Image>
<Image Source="children.png"
WidthRequest="100"
HeightRequest="35"
VerticalOptions="Center"
HorizontalOptions="Center"
IsVisible="{Binding hasChildren}"
Grid.Row="0" Grid.Column="2">
<Image.GestureRecognizers>
<TapGestureRecognizer
BindingContext="{Binding Source={x:Reference itemsView}, Path=BindingContext}"
Command="{Binding ChildrenCommand}"
CommandParameter="{Binding Source={x:Reference mainFrame}, Path=BindingContext}" />
</Image.GestureRecognizers>
</Image>
</Grid>
This is all in a ListView, now what's odd is that if the third image is not visible the first Image seems to be assigned the TapGestureRecognizer of the third, what is going on here? any ideas anyone?