Windows 上的 ListView SelectionMode

下载示例 下载示例

在通用 Windows 平台,默认情况下, Xamarin.FormsListView 使用本机ItemClick事件来响应交互,而不是本机Tapped事件。 这提供了辅助功能,以便 Windows 讲述人和键盘可以与 ListView交互。 但是,它还在不可操作的 ListView 内呈现任何点击手势。

此通用 Windows 平台特定于平台的控制 中的ListView项是否可以响应点击手势,以及本机ListView是否触发 ItemClickTapped 事件。 通过将附加属性设置为 ListView.SelectionMode 枚举的值,在 XAML 中 ListViewSelectionMode 使用它:

<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命名空间中的 Xamarin.Forms.PlatformConfiguration.WindowsSpecific 方法用于控制 中的ListView项是否可以响应点击手势,枚举ListViewSelectionMode提供两个可能的值:

  • Accessible – 指示 ListView 将触发本机 ItemClick 事件来处理交互,从而提供辅助功能。 因此,Windows 讲述人和键盘可以与 ListView交互。 但是, 中的 ListView 项无法响应点击手势。 这是通用 Windows 平台上的实例的默认行为ListView
  • Inaccessible – 指示 ListView 将触发本机 Tapped 事件来处理交互。 因此, 中的 ListView 项可以响应点击手势。 但是,没有辅助功能,因此 Windows 讲述人和键盘无法与 ListView交互。

注意

AccessibleInaccessible 选择模式是互斥的,你需要在可访问ListViewListView能够响应点击手势的 之间进行选择。

此外, GetSelectionMode 方法可用于返回当前的 ListViewSelectionMode

结果是将指定的 ListViewSelectionMode 应用于 ListView,后者控制 中的 ListView 项是否可以响应点击手势,以及本机 ListView 是否触发 ItemClickTapped 事件。