我在 Metro 应用程序中使用 GridView,并将其源设置为 CollectionViewSource。其选择模式设置为单一。
我最初遇到的问题是在加载网格时阻止选择初始项目。经过一些研究,我通过将 ListViewBase 的 IsSynchronizedWithCurrentItem 属性设置为 false 来解决这个问题。
但是,我也使用 ItemListView_SelectionChanged(object sender, SelectionChangedEventArgs e) 来处理选择更改,在这里我使用 itemsviewsource.View.CurrentItem != null 来测试我是否选择了一个项目并处理一些东西。不幸的是,在初始加载时 CurrentItem 不是 NULL。
我的问题是,我在 ItemListView_SelectionChanged 事件(或其他任何地方!)中是否缺少任何明显的东西,我可以用它来检查我在网格初始加载时没有选择任何内容,并将其与 UI 上显示的内容保持一致!