簡體   English   中英

將TapGestureRecognizer添加到Xaml網格-不起作用嗎?

[英]Adding a TapGestureRecognizer to a Xaml Grid - Doesn't work?

Xamarin Forms 2.5

我有一個帶有自定義GroupHeaderTemplateListView ,可以很好地呈現:

<ListView.GroupHeaderTemplate>
    <DataTemplate>
        <ViewCell>
            <templates:SummaryCellHeader />
        </ViewCell>
    </DataTemplate>
</ListView.GroupHeaderTemplate>

GroupHeaderTemplate具有一個帶有TapGestureRecognizerGrid

<Grid>
    <Grid.GestureRecognizers>
        <TapGestureRecognizer Command="{Binding ListHeaderTappedCommand}" />
    </Grid.GestureRecognizers>
</Grid>

TapGestureRecognizer不會觸發。 如果在ListViewHeader之外使用此模板,則可以使用。

TapGestureRecognizers在ListView允許GroupHeaderTemplate

問題是標題的綁定上下文是列表顯示的數據,而不是視圖模型。

給您的列表視圖一個名稱,然后使用它來更改命令的綁定上下文源。

<ListView ItemsSource="{Binding ListOfPeople}"
          IsGroupingEnabled="true"
          x:Name="PersonList">

<Grid.GestureRecognizers>
    <TapGestureRecognizer Command="{Binding Source={x:Reference PersonList}, BindingContext.ListHeaderTappedCommand}" />
</Grid.GestureRecognizers>

謝謝史蒂夫·查德伯恩。 如果Key是復雜的對象而不是簡單的字符串,似乎還可以在Command上放置Command:

<Grid RowSpacing="0"  >
    <Grid.GestureRecognizers>
        <TapGestureRecognizer Command="{Binding Key.ListHeaderTappedCommand}" />
    </Grid.GestureRecognizers>

好處是您獲得了用於創建列表的標題POCO的引用。 這有助於確定要采取的操作onHeaderClick

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM