ListView SelectionMode unter Windows

Beispiel herunterladen Das Beispiel herunterladen

Auf der Universelle Windows-Plattform verwendet standardmäßig das Xamarin.FormsListView systemeigene ItemClick Ereignis, um auf Interaktion zu reagieren, und nicht das native Tapped Ereignis. Dies bietet Barrierefreiheitsfunktionen, sodass die Windows-Sprachausgabe und die Tastatur mit ListViewinteragieren können. Es rendert jedoch auch alle Tippen-Gesten innerhalb des ListView nicht funktionsfähigen.

Dies Universelle Windows-Plattform plattformspezifischen Steuerungen, ob Elemente in einem ListView auf Tippen von Gesten reagieren können und ob das systemeigene ListView Ereignis oder Tapped ausgelöst ItemClick wird. Es wird in XAML verwendet, indem die ListView.SelectionMode angefügte Eigenschaft auf einen Wert der ListViewSelectionMode Enumeration festgelegt wird:

<ContentPage ...
             xmlns:windows="clr-namespace:Xamarin.Forms.PlatformConfiguration.WindowsSpecific;assembly=Xamarin.Forms.Core">
    <StackLayout>
        <ListView ... windows:ListView.SelectionMode="Inaccessible">
            ...
        </ListView>
    </StackLayout>
</ContentPage>

Alternativ kann sie über C# mit der Fluent-API genutzt werden:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.WindowsSpecific;
...

listView.On<Windows>().SetSelectionMode(ListViewSelectionMode.Inaccessible);

Die ListView.On<Windows> -Methode gibt an, dass diese plattformspezifische Nur auf dem Universelle Windows-Plattform ausgeführt wird. Die ListView.SetSelectionMode -Methode im Xamarin.Forms.PlatformConfiguration.WindowsSpecific Namespace wird verwendet, um zu steuern, ob Elemente in einem ListView auf Tippen gesten reagieren können, wobei die ListViewSelectionMode Enumeration zwei mögliche Werte bereitstellt:

  • Accessible – gibt an, dass das ListView native ItemClick Ereignis ausgelöst wird, um die Interaktion zu behandeln, und daher Barrierefreiheitsfunktionen bereitstellt. Daher können die Windows-Sprachausgabe und die Tastatur mit ListViewinteragieren. Elemente in der ListView können jedoch nicht reagieren, um auf Gesten zu tippen. Dies ist das Standardverhalten für ListView Instanzen auf dem Universelle Windows-Plattform.
  • Inaccessible – gibt an, dass das ListView native Tapped Ereignis ausgelöst wird, um die Interaktion zu behandeln. Daher können Elemente in der ListView auf Tippen gesten reagieren. Es gibt jedoch keine Barrierefreiheitsfunktionen, sodass die Windows-Sprachausgabe und die Tastatur nicht mit ListViewinteragieren können.

Hinweis

Die Accessible Auswahlmodi und Inaccessible schließen sich gegenseitig aus, und Sie müssen zwischen einer barrierefreien ListView oder einer ListView auswählen, die auf Tippen von Gesten reagieren kann.

Darüber hinaus kann die GetSelectionMode -Methode verwendet werden, um den aktuellen ListViewSelectionModezurückzugeben.

Das Ergebnis ist, dass ein angegebenes ListViewSelectionMode auf den ListViewangewendet wird, der steuert, ob Elemente in der ListView auf Tippen gesten reagieren können, und daher, ob das systemeigene ListView Ereignis oder Tapped ausgelöst ItemClick wird.