WinRT Gridview焦点/选定项目行为

时间:2015-01-14 13:37:45

标签: c# .net gridview focus winrt-component

我正在编写一个WinRT应用程序,它利用Gridview显示一些数据。 Gridview的SelectionMode为Extended,因此当用户使用光标键导航网格时,所选项目随之移动(加上我有多选功能)

我遇到的问题是,如果您使用光标键导航网格并按下Ctrl键,则所选项目保持原样,只有焦点发生变化。我的DataTemplate没有显示焦点项目,因此对用户来说非常混乱。

无论如何我可以改变这种行为,以便按住Ctrl键导航网格的方式与没有按下的方式相同吗?

1 个答案:

答案 0 :(得分:0)

最终解决方案非常简单。只需像这样创建一个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;
  }
}