MenuFlyoutItem获取父级

时间:2015-03-08 13:43:16

标签: c# windows-phone-8.1 flyout

我有一个附加到ListView项目的弹出窗口,简化如下:

<ListView.ItemTemplate>
    <DataTemplate>
        <StackPanel IsHoldingEnabled="True" Holding="ListView_Holding" >
            <FlyoutBase.AttachedFlyout>
                <MenuFlyout>
                    <MenuFlyoutItem Text="remove" Click="MenuFlyoutItem_Click"  />
                </MenuFlyout>
            </FlyoutBase.AttachedFlyout>
        </StackPanel>
    </DataTemplate>
</ListView.ItemTemplate>

private void ListView_Holding(object sender, HoldingRoutedEventArgs e)
{
    FrameworkElement senderElement = sender as FrameworkElement;
    FlyoutBase flyoutBase = FlyoutBase.GetAttachedFlyout(senderElement);

    flyoutBase.ShowAt(senderElement);
}

private void MenuFlyoutItem_Click(object sender, RoutedEventArgs e)
{

}

如何从MenuFlyoutItem_Click中获取MenuFlyout'附加'的ListView项?我尝试了一些东西,但一直没能使它工作。

如果需要,我可以发布更多代码。

1 个答案:

答案 0 :(得分:1)

您可以通过获取DataContext来获取确切的项目。这将是您绑定的集合中的对象。

var datacontext = senderElement.DataContext;

然后您可以从该DataContext获取ListViewItem。

ListViewItem item = this.NameOfYourList.ContainerFromItem(datacontext) as ListViewItem;