单击DataTemplate - WP8中的按钮

时间:2014-09-13 15:22:00

标签: c windows-phone-8 longlistselector

我正在为我的应用程序使用此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>

1 个答案:

答案 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>