首页 > 解决方案 > 如何在 CollectionView 中存储值

问题描述

我有一个CollectionView列表,想为每个项目设置一个单独的值,单击它可以获取该值。

但是好像没有这个属性应该怎么办?

<CollectionView.ItemTemplate>
                    <DataTemplate>
                        <Grid Padding="5,5" HeightRequest="55">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="0.134*" />
                                <ColumnDefinition Width="0.489*" />
                                <ColumnDefinition Width="0.256*" />
                            </Grid.ColumnDefinitions>

                            <Grid.GestureRecognizers>
                                <TapGestureRecognizer CommandParameter="{Binding Id}" Tapped="Handle_Tapped" />
                            </Grid.GestureRecognizers>
                        </Grid>
                    </DataTemplate>
                </CollectionView.ItemTemplate>

我无法获得参数,请帮助。

标签: xamlxamarinxamarin.formsbinding

解决方案


当您单击一个项目时,默认情况下事件参数会获取选定的数据,因此您不需要 id 来获取所有您需要做的事情是这样的:

 private void Handle_Tapped(object sender, System.EventArgs e)
    {
     var clickedData=(e as ItemTappedEventArgs).Item as YourDataType;

    }

您的 CollectionViewYourDataType的绑定在哪里。Type


推荐阅读