Windows'da ListView SelectionMode

Evrensel Windows Platformu varsayılan olarak Xamarin.FormsListView yerel olay yerine etkileşime yanıt vermek için yerel Tapped olayı kullanırItemClick. Bu, Windows Ekran Okuyucusu ve klavyenin ile ListViewetkileşim kurabilmesi için erişilebilirlik işlevselliği sağlar. Bununla birlikte, çalışamaz içindeki ListView tüm dokunma hareketlerini de işler.

Bu Evrensel Windows Platformu, bir ListView içindeki öğelerin dokunma hareketlerine yanıt verip veremeyeceğini ve dolayısıyla yerel ListView öğenin veya Tapped olayını tetikleyip tetiklemeyeceğini ItemClick denetler. Ekli özelliği sabit listesi değerine ListViewSelectionMode ayarlayarak ListView.SelectionMode XAML'de kullanılır:

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

Alternatif olarak, akıcı API kullanılarak C# dilinden de kullanılabilir:

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

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

ListView.On<Windows> yöntemi, platforma özgü bu uygulamanın yalnızca Evrensel Windows Platformu üzerinde çalışacağını belirtir. ListView.SetSelectionMode ad alanında Xamarin.Forms.PlatformConfiguration.WindowsSpecific yöntemi, bir ListView içindeki öğelerin dokunma hareketlerine ListViewSelectionMode yanıt verip veremeyeceğini denetlemek için kullanılır ve numaralandırma iki olası değer sağlar:

  • Accessible– etkileşimi işlemek için yerel ItemClick olayı tetiklediğini ve dolayısıyla erişilebilirlik işlevselliği sağlayacağını belirtirListView. Bu nedenle, Windows Ekran Okuyucusu ve klavye ile ListViewetkileşimde bulunabilir. Ancak içindeki öğeler ListView dokunma hareketlerine yanıt veremiyor. Bu, Evrensel Windows Platformu örnekleri için ListView varsayılan davranıştır.
  • Inaccessible– etkileşimi işlemek için yerel Tapped olayı tetiklediğini gösterirListView. Bu nedenle içindeki öğeler ListView dokunma hareketlerine yanıt verebilir. Ancak, erişilebilirlik işlevselliği yoktur ve bu nedenle Windows Ekran Okuyucusu ve klavye ile ListViewetkileşim kuramaz.

Not

Accessible ve Inaccessible seçim modları birbirini dışlar ve dokunma hareketlerine yanıt verebilen erişilebilir ListView veya ListView bir arasında seçim yapmanız gerekir.

Ayrıca yöntemi geçerli GetSelectionMode ListViewSelectionModedeğerini döndürmek için kullanılabilir.

Sonuç olarak, içindeki öğelerin ListView dokunma hareketlerine ListViewyanıt verip veremeyeceğini ve dolayısıyla yerel ListView öğenin veya Tapped olayı tetikleyip tetiklemeyeceğini ItemClick denetleyen öğesine belirtilen ListViewSelectionMode bir uygulama uygulanır.