2016-07-28 9 views
1

Ich möchte ein listviewitem auswählen, auf das eine Schaltfläche geklickt wurde.So wählen Sie das listviewitem, wo eine Schaltfläche geklickt wurde

Here is my Listview with 2 llistviewitems

ich Sie auf die X-Taste und möchten diese Artikel aus der Liste löschen. Wie bekomme ich diesen Gegenstand? Ich habe diesen Code:

private void Delete_Click(object sender, RoutedEventArgs e) 
    { 
     var item = sender as ListViewItem; 

      var obj = item.Content as object; 

      List.Remove(obj); 
    } 

Edit: Die Bindung des Listview

 <ListView x:Name="listview"> 
      <ListView.ItemTemplate> 
       <DataTemplate> 
        <WrapPanel> 
         <TextBlock Text="Bild  "/> 
         <TextBlock Text="{Binding Title}"/> 
         <Button x:Name="Change" Content="Change" Margin="250,0,0,0" Click="Change_Click"/> 
         <Button x:Name="Delete" Content="X" Margin="10,0,0,0" Click="Delete_Click"/> 
        </WrapPanel> 
       </DataTemplate> 
      </ListView.ItemTemplate> 
      <ListView.ItemContainerStyle> 
       <Style TargetType="ListViewItem"> 
        <Setter Property="Height" Value="50"/> 
        <EventSetter Event="PreviewMouseLeftButtonDown" Handler="lvSeriesItem_PreviewMouseLeftButtonDown"/> 
       </Style> 
      </ListView.ItemContainerStyle> 
     </ListView> 
+0

Können Sie buchen, wie Sie Daten an die 'Listview' binden. – Venky

+0

Ich habe den Beitrag bearbeiten – MMbach

+0

Wo setzen Sie die 'ItemSource' für die ListView? – Venky

Antwort

1

Bitte verwenden Sie dies stattdessen. Das Steuerelement, das das Ereignis ausgelöst hat, ist nicht die Listbox, sondern die Schaltfläche. Die Schaltfläche als Datenkontext Ihres Sammlungsmodellobjekts. so sollte dies funktionieren

private void Delete_Click(object sender, RoutedEventArgs e) 
    { 
     var button= sender as Button;  
     var obj =(YourModelHere)button.DataContext; 

      List.Remove(obj); 
    } 
+0

HAVE es, danke – MMbach

0

sender wird die Button, Ihr Datenelement wird die DataContext der Taste sein.

+0

wie du meinst, dass der Absender die Schaltfläche ist ok, aber was soll ich tun? – MMbach

+0

Wirf es nach 'Button' (verwende nicht' as'), dann wirf den 'DataContext' auf deine Datenelementklasse, dann kannst du das aus deiner Objektliste entfernen. Verwenden Sie übrigens "ObservableCollection", wenn Sie eine "ListView.ItemsSource" zuweisen (was Sie tun sollten). –