2017-12-12 20 views
0

자 마린은 2.5Xaml Grid에 TapGestureRecognizer 추가 - 작동하지 않습니까?

내가 잘 렌더링 사용자 정의 GroupHeaderTemplateListView이 양식 :

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

GroupHeaderTemplateTapGestureRecognizerGrid 있습니다.

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

TapGestureRecognizer는 절대 발생하지 않습니다. 이 템플릿은 ListViewHeader 외부에서 사용하면 작동합니다.

TapGestureRecognizers은 ListView에 허용됩니까 GroupHeaderTemplate?

답변

1

헤더의 바인딩 컨텍스트는 목록이 표시하는 데이터이며 뷰 모델은 아닙니다.

목록보기에 이름을 지정한 다음 명령을 사용하여 명령의 바인딩 컨텍스트 소스를 변경하십시오.

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

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

감사합니다. 스티브 채드 본.

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

이점은 당신이 헤더 POCO에 대한 참조 목록을 만드는 데 사용할 수 있다는 것입니다 : 키가 복잡한 객체가 아닌 단순한 문자열 인 경우 당신은 또한 키에 명령을 넣을 수 있습니다 보인다. 이는 취할 조치를 결정할 때 유용합니다.