Windows 上的 ListView SelectionMode
在 Windows 上,默认情况下,.NET Multi-platform App UI (.NET MAUI) ListView 使用本机 ItemClick
事件来响应交互,而不是使用本机 Tapped
事件。 这提供了辅助功能,以便 Windows 讲述人和键盘可以与 ListView 交互。 但是,它也会使 ListView 内的任何点击手势都无法操作。
此 .NET MAUI Windows 平台特定内容控制 ListView 中的项是否可以响应点击手势,从而控制本机 ListView 是触发 ItemClick
事件还是触发 Tapped
事件。 通过将 ListView.SelectionMode
附加属性设置为 ListViewSelectionMode
枚举的值以在 XAML 中使用它:
<ContentPage ...
xmlns:windows="clr-namespace:Microsoft.Maui.Controls.PlatformConfiguration.WindowsSpecific;assembly=Microsoft.Maui.Controls">
<StackLayout>
<ListView ... windows:ListView.SelectionMode="Inaccessible">
...
</ListView>
</StackLayout>
</ContentPage>
或者,可以使用 Fluent API 在 C# 中使用它:
using Microsoft.Maui.Controls.PlatformConfiguration.WindowsSpecific;
...
listView.On<Microsoft.Maui.Controls.PlatformConfiguration.Windows>().SetSelectionMode(ListViewSelectionMode.Inaccessible);
ListView.On<Microsoft.Maui.Controls.PlatformConfiguration.Windows>
方法指定此平台特定内容仅在 Windows 上运行。 Microsoft.Maui.Controls.PlatformConfiguration.WindowsSpecific
命名空间中的 ListView.SetSelectionMode
方法用于控制 ListView 中的项是否可以响应点击手势,ListViewSelectionMode
枚举提供两个可能的值:
Accessible
– 指示 ListView 将触发本机ItemClick
事件来处理交互,从而提供辅助功能。 因此,Windows 讲述人和键盘可以与 ListView 交互。 但是,ListView 中的项无法响应点击手势。 这是 Windows 上 ListView 对象的默认行为。Inaccessible
– 指示 ListView 将触发本机Tapped
事件来处理交互。 因此,ListView 中的项能够响应点击手势。 但是,没有辅助功能,因此 Windows 讲述人和键盘无法与 ListView 交互。
此外,GetSelectionMode
方法还可用于返回当前的 ListViewSelectionMode
。
结果是指定的 ListViewSelectionMode
应用于 ListView,这会控制 ListView 中的项是否可以响应点击手势,从而控制本机 ListView 是触发 ItemClick
事件还是 Tapped
事件。