0

我的 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

}
4

1 回答 1

0

XAML

 <StackLayout Orientation="Horizontal" HorizontalOptions="Fill" Padding="0,5,0,5">
                <Image  x:Name="Image1" ClassId="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="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>

C#

public void SelectedImage(object sender, EventArgs eventArgs)
{
        Image image = (Image)sender;
        string imageString = image.ClassId;

        DisplayAlert("Test", imageString ,"OK");
        //TODO

}
于 2018-11-12T07:04:41.747 回答