点击ListView内的图像,我们应该获得特定Row的属性值

问题描述

我有一个listView,它包含带有项目列表的图像。当我点击图像时,我应该获得该行的ProfileID。

<Image Source="{Binding ImageUrl}" x:Name="{Binding ProfileID}" Aspect="AspectFill">
    <Image.GestureRecognizers>
    <TapGestureRecognizer Tapped="imageUserGesture_Tapped"/>
    </Image.GestureRecognizers>
</Image>

private async void imageUserGesture_Tapped(object sender,EventArgs e)
{
    CloseAnimation();
    var img = ((Image)sender);
    var name = img.Name;//How can I read name property ??????
    //var name = e.LoadFromXaml(MatchProfile).Name;
}

解决方法

Name不是您可以引用的实际属性,它只是XAML工件(因此带有“ x”前缀)。相反,您可以使用BindingContext来获取所需的数据

var img = ((Image)sender);
var context = (MyClassGoesHere)img.BindingContext;
var name = context.ProfileID;
,
<Image Source="{Binding ImageUrl}"
       x:Name="imageUser"
       Aspect="AspectFill">
                                                                
   <Image.GestureRecognizers>
      <TapGestureRecognizer Tapped="imageUserGesture_Tapped"
         Command="{Binding TapCommand}"
         CommandParameter="{Binding ProfileID}"
         NumberOfTapsRequired="1"/>
                                                                
   </Image.GestureRecognizers>

</Image>

enter image description here