Windows 上的 ListView SelectionMode
在通用 Windows 平台,默认情况下, Xamarin.FormsListView
使用本机ItemClick
事件来响应交互,而不是本机Tapped
事件。 这提供了辅助功能,以便 Windows 讲述人和键盘可以与 ListView
交互。 但是,它还在不可操作的 ListView
内呈现任何点击手势。
此通用 Windows 平台特定于平台的控制 中的ListView
项是否可以响应点击手势,以及本机ListView
是否触发 ItemClick
或 Tapped
事件。 通过将附加属性设置为 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
交互。
注意
Accessible
和 Inaccessible
选择模式是互斥的,你需要在可访问ListView
或ListView
能够响应点击手势的 之间进行选择。
此外, GetSelectionMode
方法可用于返回当前的 ListViewSelectionMode
。
结果是将指定的 ListViewSelectionMode
应用于 ListView
,后者控制 中的 ListView
项是否可以响应点击手势,以及本机 ListView
是否触发 ItemClick
或 Tapped
事件。