2016-07-28 12 views
1

ボタンをクリックしたリストビューアイテムを選択したいとします。ボタンをクリックしたリストビュー項目を選択する方法

Here is my Listview with 2 llistviewitems

Iは、X-ボタンをクリックして、リストの中からこれらの項目を削除します。私はどのようにそのアイテムを手に入れますか?

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

      var obj = item.Content as object; 

      List.Remove(obj); 
    } 

編集: 私はこれらのコードを持っているButtonなります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

「listview」にデータをバインドする方法を投稿できますか? – Venky

+0

私は投稿を編集しました – MMbach

+0

ListViewの 'ItemSource'をどこで設定していますか? – Venky

答えて

1

これを代わりに使用してください。イベントを発生させたコントロールはリストボックスではなく、ボタンです。コレクションモデルオブジェクトのデータコンテキストとしてのボタン。これはうまくいくはずです

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

      List.Remove(obj); 
    } 
+0

ありがとう、ありがとう – MMbach

0

senderの結合を、あなたのデータ項目は、ボタン言ったのDataContextになります。

+0

どういう意味ですか、送信者のボタンは大丈夫ですが、どうすればいいですか? – MMbach

+0

'Button'にキャストして(' as'は使わないでください)、データアイテムクラスに 'DataContext'をキャストして、アイテムリストから削除することができます。ちなみに、ListView.ItemsSourceを割り当てる場合はObservableCollectionを使います。 –

関連する問題