Windows の ListView SelectionMode

サンプルのダウンロードサンプルのダウンロード

ユニバーサル Windows プラットフォームでは、既定Xamarin.FormsListViewでは、 はネイティブ イベントではなく、ネイティブ ItemClick イベントを使用して対話にTapped応答します。 これにより、Windows ナレーターとキーボードが を操作できるように、アクセシビリティ機能が提供されます ListView。 ただし、操作不能な 内 ListView のタップ ジェスチャもレンダリングされます。

このユニバーサル Windows プラットフォームプラットフォーム固有では、 内のListView項目がタップ ジェスチャに応答できるかどうか、およびネイティブListViewが イベントまたは Tapped イベントをItemClick発生させるかどうかを制御します。 添付プロパティを 列挙体の値ListViewSelectionModeListView.SelectionMode設定することで、XAML で使用されます。

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

または、fluent API を使用して C# から使用することもできます。

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

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

メソッドはListView.On<Windows>、このプラットフォーム固有の がユニバーサル Windows プラットフォームでのみ実行されるように指定します。 名前空間の メソッドはListView.SetSelectionMode、 内ListViewの項目がタップ ジェスチャに応答できるかどうかを制御するために使用され、列挙ではListViewSelectionMode次の 2 つの可能な値が提供Xamarin.Forms.PlatformConfiguration.WindowsSpecificされます。

  • Accessible– は、相互作用を処理するためにネイティブ ItemClick イベントを発生させ、アクセシビリティ機能を提供することをListView示します。 そのため、Windows ナレーターとキーボードは と ListView対話できます。 ただし、 内の ListView 項目はタップ ジェスチャに応答できません。 これは、ユニバーサル Windows プラットフォーム上のListViewインスタンスの既定の動作です。
  • Inaccessible – は、相互作用を ListView 処理するためにネイティブ Tapped イベントを起動することを示します。 したがって、 内の項目は ListView タップ ジェスチャに応答できます。 ただし、アクセシビリティ機能がないため、Windows ナレーターとキーボードは を ListView操作できません。

注意

InaccessibleAccessible選択モードは相互に排他的であり、タップ ジェスチャに応答できるアクセシビリティListViewの高い モードか、 ListView のどちらかを選択する必要があります。

さらに、 メソッドを GetSelectionMode 使用して、現在 ListViewSelectionModeの を返すことができます。

その結果、指定した ListViewSelectionMode が にListView適用されます。これにより、 内のListView項目がタップ ジェスチャに応答できるかどうか、およびネイティブListViewが イベントまたは Tapped イベントをItemClick発生させるかどうかを制御します。