如果已选择,则在单击时取消选择 GridView.Item

use*_*509 4 c# xaml windows-store-apps uwp

我知道这看起来很简单,我也是这么想的,但实际上并非如此。我有一个 GridView,SelectionMode="Single",我想通过单击它来简单地取消选择一个选定的项目。问题是,当您选择已选择的项目时,SelectionChanged 不会触发。我尝试在每个 SelectionChanged 上设置一个等于 GridView 的 SelectedIndex 的整数,然后检查 Grid_Tapped 以查看 PreviousSelectedIndex == CurrentSelectedIndex,但是 SelectionChanged 事件在 Grid_Tapped 之前触发了纳秒,因此它不起作用。有任何想法吗?

Mik*_*per 5

我认为使用它而不是 Delay 更好:

Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => gridView.SelectedItem = null);
Run Code Online (Sandbox Code Playgroud)

  • +1,因为它看起来不那么脏,并且似乎肯定可以工作,因为它可能在处理此点击后立即添加到 UI 线程工作队列中。 (2认同)