如何从内部控件中检索 Listview.Item?

How to retrieve Listview.Item from inner control?

所以我遇到了这个相对简单的问题:我有以下 ListView:

<ListView x:Name="lstView">
    <ListView.ItemTemplate>
        <DataTemplate>
            <Grid x:Name="ItemGrid">
                <HyperlinkButton Click="HyperlinkButton_Click"/>
            </Grid>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

我想在触发 HyperlinkButton_Click 事件时删除该特定项目。我尝试过各种方法,例如:

PinOutDetails p = ((sender as HyperlinkButton).Parent as Grid).Parent as PinOutDetails;
lstView.Items.Remove(p);

但显然,它不起作用...那么我怎样才能从其中一个子控件中获取 Listview.Item(PinOutDetails class)?

你最后一个 .Parent 应该是 .DataContext 因为 Parent Grid 的 DataContext 应该是你 class 你通过的。

PinOutDetails p = ((sender as HyperlinkButton).Parent as Grid).DataContext as PinOutDetails;
lstView.Items.Remove(p);

很遗憾,没有更多信息(例如您最初是如何填充列表视图),我无法提供更具体的答案。