[英]Adding a TapGestureRecognizer to a Xaml Grid - Doesn't work?
Xamarin Forms 2.5
我有一個帶有自定義GroupHeaderTemplate
的ListView
,可以很好地呈現:
<ListView.GroupHeaderTemplate>
<DataTemplate>
<ViewCell>
<templates:SummaryCellHeader />
</ViewCell>
</DataTemplate>
</ListView.GroupHeaderTemplate>
GroupHeaderTemplate
具有一個帶有TapGestureRecognizer
的Grid
。
<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.