c# - 弹出菜单 windows phone 8.1 暂停 Listview

标签 c# xaml windows-phone-8.1

当在 listview 上使用 hold 项目时,如何显示 flyout 菜单?我试过了,但是 hold 方法引用了 listview 而不是它自己的项目。

最佳答案

您可以订阅项目的模板持有事件。例如像这样:

<ListView.ItemTemplate>
    <DataTemplate>
        <Grid Holding="Grid_Holding" VerticalAlignment="Stretch">
            <FlyoutBase.AttachedFlyout>
                <MenuFlyout>
                    <MenuFlyoutItem x:Name="EditButton"
                            Text="Edit"
                            Click="EditButton_Click"/>
                    <MenuFlyoutItem x:Name="DeleteButton"
                            Text="Delete"
                            Click="DeleteButton_Click"/>
                </MenuFlyout>
            </FlyoutBase.AttachedFlyout>
            <TextBlock Text="{Binding}" VerticalAlignment="Center"/>
        </Grid>
    </DataTemplate>
</ListView.ItemTemplate>

在后面的代码中,显示弹出窗口:

private void Grid_Holding(object sender, HoldingRoutedEventArgs e)
{
    FrameworkElement senderElement = sender as FrameworkElement;
    // If you need the clicked element:
    // Item whichOne = senderElement.DataContext as Item;
    FlyoutBase flyoutBase = FlyoutBase.GetAttachedFlyout(senderElement);
    flyoutBase.ShowAt(senderElement);
}

private async void EditButton_Click(object sender, RoutedEventArgs e)
{
    // get the clicked element:
    Item datacontext = (e.OriginalSource as FrameworkElement).DataContext as Item;
    await new MessageDialog("Edit").ShowAsync();
}

如果您愿意,您也可以使用 Behaviours 来完成。您还可以在 Igrali's blog post 找到一些帮助.

关于c# - 弹出菜单 windows phone 8.1 暂停 Listview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29259003/

相关文章:

c# - 处理 DynamicObject 缺失成员的首选方法是什么?

c# - itextsharp 将点转换为厘米

c# - Entity Framework 6 自动迁移定期在生产服务器上重建表

c# - Xamarin.Forms.Xaml.XamlParseException

c# - 从 Windows Phone 8.1 WinRT 相机预览中捕获 WriteableBitmap

windows-phone-8-emulator - 在 "package could not be registered"中部署通用应用程序结果

c# - 通过完整路径和查询名称查询 TFS 存储/保存的查询(不在 'My Queries' 或 'Shared Queries' 中的查询)

c# - 为什么我的 XAML 控件没有显示在代码隐藏中?

xaml - 使用 MVVM 在 XAML 中让 ViewModel 知道用户何时滚动到 ListView 的末尾

c# - 在 Caliburn.Micro 中如何将操作绑定(bind)到嵌套的 ViewModel 方法?