A 正在编写一个利用网格视图显示一些数据的 WinRT 应用程序。 网格视图的选择模式为扩展,因此当用户使用光标键导航网格时,所选项目会随之移动(此外,我具有多选功能)
我遇到的问题是,如果您使用光标键导航网格并按下 Ctrl,则所选项目将保留在原处,只有焦点会发生变化。 我的数据模板不显示焦点项目,因此用户非常困惑。
无论如何,我可以更改此行为,以便在按住 Ctrl 的情况下导航网格的工作方式与未按住网格的方式相同?
最后的解决方案非常简单。 只需创建一个像这样的 GotFocus 处理程序:
private void SdxGridView_GotFocus(object sender, RoutedEventArgs e)
{
if (e.OriginalSource is GridViewItem && !((GridViewItem)e.OriginalSource).IsSelected)
{
SelectedItems.Clear();
((GridViewItem)e.OriginalSource).IsSelected = true;
}
}