ListView SelectionMode no Windows

Na Plataforma Universal do Windows, por padrão, o Xamarin.FormsListView usa o evento nativo ItemClick para responder à interação, em vez do evento nativo Tapped . Isso fornece funcionalidade de acessibilidade para que o Narrador do Windows e o teclado possam interagir com o ListView. No entanto, ele também torna inoperantes todos os gestos de toque dentro do ListView inoperante.

Essa plataforma específica da Plataforma Universal do Windows controla se os itens em um ListView podem responder a gestos de toque e, portanto, se o nativo ListView aciona o ItemClick evento or Tapped . Ele é consumido em XAML definindo a propriedade anexada ListView.SelectionMode como um valor da ListViewSelectionMode enumeração:

<ContentPage ...
             xmlns:windows="clr-namespace:Xamarin.Forms.PlatformConfiguration.WindowsSpecific;assembly=Xamarin.Forms.Core">
    <StackLayout>
        <ListView ... windows:ListView.SelectionMode="Inaccessible">
            ...
        </ListView>
    </StackLayout>
</ContentPage>

Como alternativa, ele pode ser consumido do C# usando a API fluente:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.WindowsSpecific;
...

listView.On<Windows>().SetSelectionMode(ListViewSelectionMode.Inaccessible);

O ListView.On<Windows> método especifica que esse específico da plataforma só será executado na Plataforma Universal do Windows. O ListView.SetSelectionMode método, no Xamarin.Forms.PlatformConfiguration.WindowsSpecific namespace, é usado para controlar se os itens em um ListView podem responder a gestos de toque, com a ListViewSelectionMode enumeração fornecendo dois valores possíveis:

  • Accessible – indica que o ListView acionará o evento nativo ItemClick para lidar com a interação e, portanto, fornecer funcionalidade de acessibilidade. Portanto, o Narrador do Windows e o teclado podem interagir com o ListView. No entanto, os ListView itens no não podem responder a gestos de tocar. Esse é o comportamento padrão para ListView instâncias na Plataforma Universal do Windows.
  • Inaccessible – indica que o ListView acionará o evento nativo Tapped para lidar com a interação. Portanto, os itens no podem responder a gestos ListView de toque. No entanto, não há funcionalidade de acessibilidade e, portanto, o Narrador do Windows e o teclado não podem interagir com o ListView.

Observação

Os Accessible modos de seleção e Inaccessible são mutuamente exclusivos e você precisará escolher entre um acessível ListView ou um ListView que possa responder a gestos de toque.

Além disso, o GetSelectionMode método pode ser usado para retornar a corrente ListViewSelectionMode.

O resultado é que um especificado ListViewSelectionMode é aplicado ao ListView, que controla se os ListView itens no podem responder a gestos de toque e, portanto, se o nativo ListView aciona o ItemClick evento or Tapped .