SelectionMode de ListView en Windows
En la Plataforma universal de Windows, de forma predeterminada, Xamarin.FormsListView
usa el evento nativo ItemClick
para responder a la interacción, en lugar del evento nativo Tapped
. Esto proporciona funcionalidad de accesibilidad para que el Narrador de Windows y el teclado puedan interactuar con el objeto ListView
. Sin embargo, también representa los gestos de pulsación dentro del objeto ListView
que no funciona.
Esta característica específica de la Plataforma universal de Windows controla si los elementos de un control ListView
pueden responder a gestos de pulsación y, por tanto, si el elemento ListView
nativo desencadena el evento ItemClick
o Tapped
. Se consume en XAML estableciendo la propiedad asociada ListView.SelectionMode
en un valor de la enumeración ListViewSelectionMode
:
<ContentPage ...
xmlns:windows="clr-namespace:Xamarin.Forms.PlatformConfiguration.WindowsSpecific;assembly=Xamarin.Forms.Core">
<StackLayout>
<ListView ... windows:ListView.SelectionMode="Inaccessible">
...
</ListView>
</StackLayout>
</ContentPage>
Como alternativa, se puede consumir desde C# mediante la API fluida:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.WindowsSpecific;
...
listView.On<Windows>().SetSelectionMode(ListViewSelectionMode.Inaccessible);
El método ListView.On<Windows>
especifica que esta característica especifica de la plataforma solo se ejecutará en la Plataforma universal de Windows. El método ListView.SetSelectionMode
, en el espacio de nombres Xamarin.Forms.PlatformConfiguration.WindowsSpecific
, se usa para controlar si los elementos de un objeto ListView
pueden responder a gestos de pulsación, con la enumeración ListViewSelectionMode
que proporciona dos valores posibles:
Accessible
: indica queListView
activará el evento nativoItemClick
para controlar la interacción y, por tanto, proporcionar la funcionalidad de accesibilidad. Por lo tanto, el Narrador de Windows y el teclado pueden interactuar conListView
. Sin embargo, los elementos deListView
no pueden responder a gestos de pulsación. Este es el comportamiento predeterminado para las instancias deListView
de la Plataforma universal de Windows.Inaccessible
: indica queListView
activará el evento nativoTapped
para controlar la interacción. Por lo tanto, los elementos deListView
pueden responder a gestos de pulsación. Sin embargo, no hay ninguna funcionalidad de accesibilidad y, por tanto, el Narrador de Windows y el teclado no pueden interactuar conListView
.
Nota:
Los modos de selección Accessible
y Inaccessible
se excluyen mutuamente, por lo que tendrás que elegir entre un objeto ListView
accesible o un objeto ListView
que pueda responder a gestos de pulsación.
Además, se puede usar el método GetSelectionMode
para devolver el objeto ListViewSelectionMode
actual.
El resultado es que se aplica un ListViewSelectionMode
especificado a ListView
, que controla si los elementos de ListView
pueden responder a gestos de pulsación y, por tanto, si el objeto ListView
nativo activa el evento ItemClick
o Tapped