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 oListView
acionará o evento nativoItemClick
para lidar com a interação e, portanto, fornecer funcionalidade de acessibilidade. Portanto, o Narrador do Windows e o teclado podem interagir com oListView
. No entanto, osListView
itens no não podem responder a gestos de tocar. Esse é o comportamento padrão paraListView
instâncias na Plataforma Universal do Windows.Inaccessible
– indica que oListView
acionará o evento nativoTapped
para lidar com a interação. Portanto, os itens no podem responder a gestosListView
de toque. No entanto, não há funcionalidade de acessibilidade e, portanto, o Narrador do Windows e o teclado não podem interagir com oListView
.
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
.