我正在使用XAML / C#为触摸设备开发Windows 8.1应用程序,并遇到以下内容:我有一个GridView,其中显示了一个项目列表,这些项目被设置为tile。当我点击其中一个图块时,我打开一个不同的页面,其中使用GridView上的以下属性显示该项目的详细视图:
IsItemClickEnabled="True"
ItemClick="itemGridView_ItemClick"
现在我想模仿Windows在“开始”屏幕上使用的行为,当您持有特定磁贴时,它会被选中并且AppBar会显示并为该特定项目提供一些命令。每个项目的命令始终相同,但显然项目不是。如果未选择任何项目,AppBar将显示与单个项目无关的不同命令。首次加载屏幕时,不应选择任何内容。
我该如何实现这种行为?
答案 0 :(得分:4)
这可能有更优雅的方法,但我会以这种方式为您提供工作,然后您可以将其创建为行为或其他任何方式。
您需要处理gridview上的Holding事件,如下所示:
private void gridView_Holding(object sender, Windows.UI.Xaml.Input.HoldingRoutedEventArgs e)
{
if (e.HoldingState == HoldingState.Completed)
{
gridView.IsCustomising = true;
var heldItem = (e.OriginalSource as FrameworkElement).DataContext as Event;
gridView.SelectedItem = heldItem;
}
e.Handled = true;
}
注意:我已经扩展了开箱即用的gridview,以显示在win 8.1上的自定义样式 注意:本例中我的gridview中的项目类型是Event类型,而你的类型是你绑定的类型
您显然还需要通过viewmodel创建appbar和bindup,以便在gridview中选择项目时可以看到哪些命令。
希望有所帮助。