问题描述
我有一个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>