【发布时间】:2018-11-11 17:36:25
【问题描述】:
我的 XAML 中有多个图像,如下所示(在本示例中,我包含了两个图像)。
<StackLayout Orientation="Horizontal" HorizontalOptions="Fill" Padding="0,5,0,5">
<Image x:Name="Image1" ClassId="{Binding Image1}" Source="tickoff.png" HeightRequest="18">
<Image.GestureRecognizers>
<TapGestureRecognizer
Tapped="SelectedImage"
NumberOfTapsRequired="1" />
</Image.GestureRecognizers>
</Image>
<Label Text="Asian Foods" FontSize="16" HorizontalOptions="Center" Margin="5,0,0,0"
TextColor="{StaticResource greyishBrown}"/>
</StackLayout>
StackLayout Orientation="Horizontal" HorizontalOptions="Fill" Padding="0,5,0,5">
<Image x:Name="Image2" ClassId="{Binding Image2}" Source="tickoff.png" HeightRequest="18">
<Image.GestureRecognizers>
<TapGestureRecognizer
Tapped="SelectedImage"
NumberOfTapsRequired="1" />
</Image.GestureRecognizers>
</Image>
<Label Text="Japanese Foods" FontSize="16" HorizontalOptions="Center" Margin="5,0,0,0"
TextColor="{StaticResource greyishBrown}"/>
</StackLayout>
我想查看用户点击了什么图片。为此,我正在使用 ClassId。我在所有图像中都包含了 ClassId。这在后面的代码中有一个方法,我正在从那里访问 classId。
但是当用户点击图片时我没有得到 ID。我是 C# 和 Xamarin 表单的新手。谁能帮帮我。
public void SelectedImage(object sender, EventArgs eventArgs)
{
Image image = (Image)sender;
string imageString = image.ClassId;
DisplayAlert("Test", imageSender.ClassId,"OK");
//TODO
}
【问题讨论】:
-
@Gerald Versluis - 你能看看这个吗?
-
是 BindingContext 上的 Image1 和 Image2 字符串属性吗?
-
没有。你能帮我解决这个问题吗?
-
如果您只想为 ClassID 分配一个静态值,那么只需使用字符串“Image1”或“Image2”。如果您想将 ClassID 实际绑定到模型上的值,则需要在绑定表达式中指定公共属性的名称
-
我删除了它并添加为 ClassId="Image2" ,现在我遇到了演员错误。不工作
标签: c# xamarin xamarin.forms