【问题标题】:Image not getting the Class ID - Xamarin Forms图像未获得类 ID - Xamarin Forms
【发布时间】: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


【解决方案1】:

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

}

【讨论】:

    猜你喜欢
    • 2016-06-15
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多