Compartir a través de


SelectionMode de ListView en Windows

En Windows, de forma predeterminada, la interfaz de usuario de aplicaciones multiplataforma de .NET (.NET MAUI) ListView 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 MAUI .NET específica de la plataforma Windows controla si los elementos de un objeto ListView pueden responder a gestos de pulsación y, por lo tanto, si el objeto ListView nativo activa el evento ItemClick o Tapped. Se consume en XAML configurando la propiedad adjunta ListView.SelectionMode con un valor de la enumeración ListViewSelectionMode:

<ContentPage ...
             xmlns:windows="clr-namespace:Microsoft.Maui.Controls.PlatformConfiguration.WindowsSpecific;assembly=Microsoft.Maui.Controls">
    <StackLayout>
        <ListView ... windows:ListView.SelectionMode="Inaccessible">
            ...
        </ListView>
    </StackLayout>
</ContentPage>

Como alternativa, se puede consumir desde C# mediante la API fluida:

using Microsoft.Maui.Controls.PlatformConfiguration.WindowsSpecific;
...

listView.On<Microsoft.Maui.Controls.PlatformConfiguration.Windows>().SetSelectionMode(ListViewSelectionMode.Inaccessible);

El método ListView.On<Microsoft.Maui.Controls.PlatformConfiguration.Windows> especifica que esta plataforma específica solo se ejecutará en Windows. El método ListView.SetSelectionMode, en el espacio de nombres Microsoft.Maui.Controls.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 que ListView activará el evento nativo ItemClick 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 con ListView. Sin embargo, los elementos de ListView no pueden responder a gestos de pulsación. Este es el comportamiento predeterminado para los objetos ListView en Windows.
  • Inaccessible: indica que ListView activará el evento nativo Tapped para controlar la interacción. Por lo tanto, los elementos de ListView 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 con ListView.

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