2016-01-26 3 views
0

Так что у меня это относительно простая задача: у меня есть следующие ListView:Как получить Listview.Item из внутреннего элемента управления?

<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) внутри одного из его дочерних элементов управления?

ответ

2

Вы последний раз. Параметр должен быть .DataContext как DataContext родительской сетки должен быть вашим классом, через который вы проходили.

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

К сожалению, без дополнительной информации, например, как вы заселение вид списка в первую очередь, я не могу предоставить более конкретные ответы.

Смежные вопросы