如何在Xamarin中处理FlexLayout的触摸事件

因此,我正在构建一个应在其中展示多个产品的应用程序,因为我想在一行中展示多个产品,所以我无法使用ListView,因此我考虑将FlexLayout用作Bindable-Layout和使用ItemsSource来显示我的商品列表,这是成功的。因此,我想为flexlayout中显示的每个产品添加一个touch事件,这样做是为了创建一个新的行为,这是我使用的代码的链接:

https://gist.github.com/jtaubensee/96a5e49c66a205e36ff32787f1d2114d

确实有效,因此我可以使用Command。我的问题是我想获得被点击的产品,但我不知道该怎么做?有谁可以帮助我吗?

wangqian9889 回答:如何在Xamarin中处理FlexLayout的触摸事件

如果您不反对xaml,这就是我的处理方式。

<FlexLayout BindableLayout.ItemsSource="{Binding Abilities}" IsVisible="{Binding HasAbilities}" BindableLayout.ItemTemplate="{DataTemplate attitm:AttachedAbility}"
                    AlignItems="Center" Wrap="Wrap" JustifyContent="Center"/>

和模板实现触摸手势,并将对象作为命令参数传递;

<ContentView.Content>
    <StackLayout Padding="20,8" HorizontalOptions="Center">
        <Frame BorderColor="{OnPlatform Android=DarkCyan,UWP=Accent}" Padding="4">
            <Frame.GestureRecognizers>
                <TapGestureRecognizer Command="{Binding DrillIntoCommand}" CommandParameter="{Binding}"/>
            </Frame.GestureRecognizers>
            <StackLayout HorizontalOptions="Center" Orientation="Horizontal">
                <Label x:Name="TitleLabel" Text="{Binding Title}" HorizontalOptions="Center" VerticalOptions="Center"/>
                <Label Text="&#xf12a;" FontFamily="{StaticResource FontAwesomeSolid}" IsVisible="{Binding IsUserCreated}" TextColor="Orange" HorizontalOptions="Center"/>
            </StackLayout>
        </Frame>
    </StackLayout>
</ContentView.Content>
本文链接:https://www.f2er.com/3141841.html

大家都在问