KeiStory

WPF ListView 내부 버튼 클릭 시 선택한 Item 가져오기

 

ListView 항목에 버튼이 존재하는 경우

<ListView x:Name="MyListView">
    <ListView.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Name}" Margin="0,0,10,0"/>
                <Button Content="Delete" Click="DeleteButton_Click"/>
            </StackPanel>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

해당 항목을 찾는 방법은 아래처럼 처리하면 버튼이 클릭한 아이템을 가져올 수 있습니다.

private void DeleteButton_Click(object sender, RoutedEventArgs e)
{
   var listViewItem = (ListViewItem)listView.ItemContainerGenerator.ContainerFromItem(((Button)sender).DataContext);
   TestItemModel testItemModel = listViewItem.Content as TestItemModel;
}

위 예시에서는 TestItemModel 구조를 바이딩하여 해당 타입으로 변환한 내용입니다.

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band