将GestureRecognizer添加到gridview中的行

时间:2016-05-24 13:07:37

标签: xamarin xamarin.forms

我有一个网格,其中有3列包含2个按钮和1个标签。我想要的是为网格中的每一行添加一个Tap手势。我希望当用户点击网格行中的任何位置时触发click事件。有没有办法做到这一点?

我希望尽可能简化布局。在我使用多个stacklayout创建相同的网格并向父stacklayout添加手势之前。但是为了性能,我想使用网格视图来做到这一点。

2 个答案:

答案 0 :(得分:8)

我建议添加ContentView(不像StackLayout那样密集)。使其覆盖整行并将GestureRecognizer添加到其中,如下所示:

<ContentView HorizontalOptions="FillAndExpand"
             VerticalOptions="FillAndExpand"
             Grid.Row="0"
             Grid.Column="0">
    <ContentView.GestureRecognizers>
        <TapGestureRecognizer Tapped="OnTapped"/>
    </ContentView.GestureRecognizers>
</ContentView>

答案 1 :(得分:5)

我已经通过在每行中添加内容视图和手势并跨越我的列来覆盖整行来解决这个问题,因此点击行中的任何位置都会触发每行的点击事件。

<ContentView HorizontalOptions="FillAndExpand"
             VerticalOptions="FillAndExpand"
             Grid.Row="0"
             Grid.Column="0"
             Grid.ColumnSpan="3">
    <ContentView.GestureRecognizers>
        <TapGestureRecognizer Tapped="OnTapped"/>
    </ContentView.GestureRecognizers>
</ContentView>