我正在为我的应用程序使用此数据模板,该应用程序使用 WP8 工具包中的上下文菜单。因此,此数据模板中的每个项目都有一个按钮(用于打开上下文菜单),并且上下文菜单也有单击事件
那么,当我在应用程序中将此数据模板用于 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>
最佳答案
上下文菜单应在元素内部声明,而不是单独声明。在按钮内声明上下文菜单,如下面的代码所示,并删除按钮中的单击事件。
每当您在按钮中声明上下文菜单时,它都会自动运行(打开上下文菜单),无需任何单击事件。
<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>
关于单击 DataTemplate - WP8 中的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25824631/