1

我正在尝试在我的 Windows 8 应用程序中为 GridView 实现一些复杂的选择行为。我知道这是可能的,因为 Windows Store 中的 OneNote 应用程序实现了与我想要的完全相同的行为。这是我想要的行为:

  • 如果我左键单击该项目,则仅应触发 ItemTapped 事件。不应选择项目。这完全一样SelectionMode="None"。当在触摸屏设备上点击项目时,预期会有相同的行为。
  • 如果我右键单击,我应该能够选择多个项目 - 就像SelectionMode="Multiple". 当用户通过滑动和拉动来选择一个项目时,也会发生类似的事情。如果我再次左键单击一个项目,所有选定的项目都应该被取消选择并且 ItemTapped 应该触发。

简而言之,左键单击和项目点击应该表现为,SelectionMode="None"而右键单击和滑动选择应该表现为SelectionMode="Multiple".

4

1 回答 1

3

我认为您可以通过首先启用多项选择以及启用滑动手势来实现您想要的。然后左键单击(在点击的处理程序中),您可以取消选择代码中的所有项目。

Xaml GridView 选项 - 这允许右键单击和触摸(滑动)选择:

SelectionMode="Multiple"
IsSwipeEnabled="True"
Tapped="itemGridView_Tapped"

这是点击事件背后的代码 - 在左键单击或点击时,这会取消选择任何选定的项目:

private void itemGridView_Tapped(object sender, TappedRoutedEventArgs e)
{
    while (itemGridView.SelectedItems.Count > 0)
        itemGridView.SelectedItems.RemoveAt(0);
}
于 2013-06-09T17:16:46.620 回答