#c# #xamarin.forms #cross-platform #gesture #binding-context
#c# #xamarin.forms #кроссплатформенный #жест #привязка-контекст
Вопрос:
У меня есть 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;
}
Ответ №1:
Name
это не фактическое свойство, на которое вы можете ссылаться, это просто артефакт XAML (отсюда и префикс «x»). Вместо этого вы можете использовать BindingContext
для получения необходимых вам данных
var img = ((Image)sender);
var context = (MyClassGoesHere)img.BindingContext;
var name = context.ProfileID;