ListView SelectionMode no Windows

Baixar exemplo Baixar o exemplo

No Plataforma Universal do Windows, por padrão, o usa o Xamarin.FormsListView evento nativo ItemClick para responder à interação, em vez do evento nativoTapped. Isso fornece funcionalidade de acessibilidade para que o Narrador do Windows e o teclado possam interagir com o ListView. No entanto, ele também renderiza qualquer gesto de toque dentro do ListView inoperável.

Isso Plataforma Universal do Windows controles específicos da plataforma se os itens em um ListView podem responder a gestos de toque e, portanto, se o nativo ListView dispara o ItemClick evento ou Tapped . Ele é consumido em XAML definindo a ListView.SelectionMode propriedade anexada 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 essa plataforma específica só será executada no 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 disparará 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 itens no ListView não podem responder a gestos de toque. Esse é o comportamento padrão para ListView instâncias no Plataforma Universal do Windows.
  • Inaccessible – indica que o ListView disparará o evento nativo Tapped para manipular a interação. Portanto, os itens no ListView podem responder a gestos de toque. No entanto, não há nenhuma 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 o atual 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 dispara o ItemClick evento ou Tapped .