我正在为我的应用程序使用此datatemplate,它使用了WP8工具包中的上下文菜单。因此,此datatemplate中的每个项目都有一个按钮(用于打开上下文菜单),上下文菜单也有单击事件
因此,当我在app中为我的LongListSelectors使用此数据模板时,如何调用这些点击事件?
<DataTemplate>
<Grid>
<Grid.ColumnDefenitions>.........
......
<TextBlock Text="{Binding Name}" TextWrapping="Wrap" Grid.Column="0"/>
<TextBlock Text="{Binding Artist}" TextWrapping="Wrap" Grid.Column="1"/>
<Button Click="openContext" Grid.Column="2"/>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu IsZoomEnabled="false">
<toolkit:MenuItem Header="Download"
Click="context_download" />
<toolkit:MenuItem Header="Add to later"
Click="context_later" />
.......
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</TextBlock>
</StackPanel>
</DataTemplate>
答案 0 :(得分:0)
上下文菜单应在元素内声明,而不是单独声明。在按钮内声明您的上下文菜单,如下面的代码,并删除按钮中的单击事件。
每当您在按钮中声明上下文菜单时,它都会自动运行(打开上下文菜单)而不会发生任何点击事件。
<Button Content="ContextMenu">
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu IsZoomEnabled="False">
<toolkit:MenuItem Header="Download" Click="context_download"/>
<toolkit:MenuItem Header="Add to later" Click="context_later"/>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</Button>