Skip to content

TapGesture on a Grid control in an ItemTemplate of a CollectionView does not always fire. #31102

@ChuckVanzant

Description

@ChuckVanzant

Description

This test application contains a play button, a pause button, and a CollectionView control. The CollectionView control is initially populated with items contained in an ObservableCollection. When the play button is pressed, an async play method is called to speak the items in the CollectionView one by one. When the pause button is pressed, the, an associated CancellationTokenSource is cancelled and the async play method returns. All this seems to work fine.
There is also a TapGesture defined for a Grid control within the DataTemplate of the CollectionView.
The intentional use of the TapGesture is when an item in the CollectionView is double-clicked for a Primary button (or single-clicked for a Secondary button), that

  • the play method should begin execution if not currently executing (paused) or
  • end execution if currently executing.

The problem is that the TapGesture command only fires to stop execution of the play method if the play button was previously clicked.
The TapGesture command does not fire if the TapGesture command was previously used to start Play execution.
The Pause button does stop the execution.
This same behavior exists on the Android platform, not tested on IOS or MacCatalyst.

Steps to Reproduce

Attached is a ZIP file containing a .net 10 preview solution for Windows. It should also build for Android

TestCollectionViewTapGesture.zip

.

Link to public reproduction project repository

No response

Version with bug

10.0.0-preview.5

Is this a regression from previous behavior?

Not sure, did not test other versions

Last version that worked well

No response

Affected platforms

Windows, Android

Affected platform versions

Windows SDK 10.0.0-preview.5.25277.114, Android SDK Platform 34-36

Did you find any workaround?

No workaround found and CoPilot did not resolve the issue.

Relevant log output

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions