Partilhar via


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 qualquer gesto 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 dispara o ItemClick evento ou 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 namespace, é usado para controlar se os Xamarin.Forms.PlatformConfiguration.WindowsSpecific 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 itens no não podem responder a gestos ListView de toque. 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 manipular 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 e Inaccessible seleção são mutuamente exclusivos, e você precisará escolher entre um acessível ListView ou um que possa responder a gestos ListView 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 , que controla ListViewse os itens no podem responder a gestos ListView de toque e, portanto, se o nativo ListView dispara o ItemClick evento ou Tapped .