我想要当用户持有一个项目时,出现一个弹出窗口,用于删除,发送等。
我可以为此创建一个窗口并将其可见性设置为可见,但是是否有任何内置方式,例如内置ApplicationBar?
任何参考都是有帮助的。(这是WP8应用)。
在Windows Phone的世界中,您指的是ContextMenu。为此,您需要使用可以从NuGet轻松安装的Windows Phone工具包(http://phone.codeplex.com/)。它本身不是内置控件,但是无论如何它几乎都是正式的,因为WP Toolkit基本上是由Windows Phone团队的一些成员完成的(随着时间的推移,其中某些控件会移入内置框架中,如示例所示)最近由LongListSelector等)。
因此,使用它非常简单。在XAML中的任何UIElement上,您只需在其中定义以下内容(在此示例中,UIElement是一个Grid):
<Grid>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem
Header="Menu Item One"
Command="{Binding MenuOneCommand}" />
<toolkit:MenuItem
Header="Menu Item Two"
Command="{Binding MenuTwoCommand}" />
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</Grid>
您可以为每个MenuItem定义“ Click”事件处理程序,但我建议(如上面的示例所示),请遵循MVVM原理在Command上使用数据绑定。这是因为,特别是在列表项上使用ContextMenu时,使用绑定时通常很难确定它属于哪个项,而可以在CommandParameter中轻松绑定当前数据上下文(即项)。 。例如:
<DataTemplate x:Key="ListItemTemplate">
<Grid>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem
Header="Delete Item"
Command="{Binding DeleteItemCommand}" CommandParameter="{Binding}" />
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</Grid>
</DataTemplate>
这样,在命令的执行处理程序中,您将方便地将数据项对象作为参数传入。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句