Share via


ListView SelectionMode unter Windows

Im Universelle Windows-Plattform wird standardmäßig das Xamarin.FormsListView systemeigene ItemClick Ereignis verwendet, um auf Interaktionen zu reagieren, anstatt auf das systemeigene Tapped Ereignis. Dadurch wird die Barrierefreiheit hergestellt, sodass die Windows-Sprachausgabe und die Tastatur mit dem ListView interagieren können. Allerdings werden dadurch auch alle Tippgesten innerhalb des ListView funktionslos.

Diese Universelle Windows-Plattform plattformspezifischen Steuerelemente, ob Elemente in einer ListView App auf Tippgesten reagieren können und ob das systemeigene ListView Ereignis ausgelöst ItemClickTapped wird. Sie wird in XAML verwendet, indem sie die ListView.SelectionMode angefügte Eigenschaft auf einen Wert der ListViewSelectionMode Aufzählung festlegt:

<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 mit der Fluent-API von C# 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 Tippgesten reagieren können, wobei die ListViewSelectionMode-Enumeration zwei mögliche Werte liefert:

  • Accessible - zeigt an, dass das ListView das native ItemClick-Ereignis auslöst, um die Interaktion zu behandeln und somit die Barrierefreiheit zu gewährleisten. Daher können die Windows-Sprachausgabe und die Tastatur mit dem ListView interagieren. Die Elemente in der ListView können jedoch nicht auf Tippgesten reagieren. Dies ist das Standardverhalten für ListView Instanzen im Universelle Windows-Plattform.
  • Inaccessible - zeigt an, dass das ListView das native Tapped-Ereignis auslöst, um die Interaktion zu behandeln. Daher können Elemente im Bereich ListView auf Tippgesten reagieren. Es gibt jedoch keine Eingabehilfen, sodass die Windows-Sprachausgabe und die Tastatur nicht mit der ListView interagieren können.

Hinweis

Die Auswahlmodi Accessible und Inaccessible schließen sich gegenseitig aus, und Sie müssen sich für ein zugängliches ListView oder ein ListView entscheiden, das auf Tippgesten reagieren kann.

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

Das Ergebnis ist, dass ein bestimmter ListViewSelectionMode auf die ListView angewendet wird, daser steuert, ob Elemente in der ListView auf Tippgesten reagieren können, und somit, ob die native ListView das Ereignis ItemClick oder Tapped auslöst.