如何从内部控件中检索 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);
很遗憾,没有更多信息(例如您最初是如何填充列表视图),我无法提供更具体的答案。
所以我遇到了这个相对简单的问题:我有以下 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);
很遗憾,没有更多信息(例如您最初是如何填充列表视图),我无法提供更具体的答案。