在项目按下获取ContextMenu的ListBox项目

时间:2013-06-24 01:19:02

标签: windows-phone-7 xaml listbox windows-phone-8

我在ListBox中使用ContextMenu时遇到问题。我的ContextMenu的一个项目用于通过查询字符串将项目的名称传递给我的应用程序中的另一个页面。截至目前,我正在使用ListBox的SelectionChanged事件来检索所选项目的名称,但这需要用户按下然后释放项目以注册事件。我希望能够在用户按下ListBox项目以访问ContextMenu时获取项目的名称,而无需按下。

要注意,我已尝试使用ListBox的KeyDown事件来实现此目的,但它也不起作用。我可以用什么事件来满足这个要求?

1 个答案:

答案 0 :(得分:1)

如果您使用listbox项目的列表框中的绑定,则可以使用ContextMenu的MenuItem的Tag属性。 要绑定标签,请使用

<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu Background="{StaticResource PhoneChromeBrush}">
<toolkit:MenuItem Foreground="{StaticResource PhoneForegroundBrush}" Header="Send" Name="Send" Tag="{Binding Name}" Click="Send_Click_1"/>
</toolkit:ContextMenuService.ContextMenu>

当您单击ContextMenuItem时,您可以使用

访问标记
var name = ((MenuItem)sender).Tag.ToString();

如果使用绑定属性

,则可以使用此语句访问列表框项目
var listBoxItemName= ((MenuItem)sender).DataContext as ListBoxItemClass;

这里,ListBoxItemClass是用于绑定属性的tha类的名称。 试试这个,希望你得到你想要的东西