如何通过按钮获取ListView的行项目?

时间:2018-12-09 12:36:52

标签: xamarin.forms

要获取ListView的选定项目,很容易:

myObject myObjectName = e.Item as myObject ;

ItemTappedEventArgs具有Item属性。

但是如果我想在单元格中放置一个按钮并且想获得在EventArgs没有Item属性的情况下单击按钮的单元格的项目,怎么获得?

2 个答案:

答案 0 :(得分:2)

尝试类似的操作,将您的商品列表绑定到listview的Itemsource,如果您的按钮或图像具有如下所示的点击事件映射,则可以从列表中获取所选商品。该事件将映射到Image的Tap手势时,代码将强制转换为Image。

列表视图中的图片将是

<Image  Source="app_dots" Grid.Column="2" VerticalOptions="Start">
                                    <Image.GestureRecognizers>
                                        <TapGestureRecognizer
                                            Tapped="more_Tapped"
                                            NumberOfTapsRequired="1"/>
                                    </Image.GestureRecognizers>
                                </Image>

以及Tap事件的代码,

async void more_Tapped(object sender, System.EventArgs e)
    {
        ApplicationModel applicationModel = ((ApplicationModel)((Image)sender).BindingContext);
        if (applicationModel != null)
        {
            //do your logic;
        }
    }

答案 1 :(得分:0)

完成该任务的最简单方法是将CommandParameter="{Binding .}"放入您的ListView和后面的代码中:

TappedEventArgs tappedEventArgs = e as TappedEventArgs;
myObject myObjectName = tappedEventArgs.Parameter as myObject ;