WPF ListView点击删除某一行并获取绑定数据

Posted yelanggu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF ListView点击删除某一行并获取绑定数据相关的知识,希望对你有一定的参考价值。

最近在开发WPF程序时遇到一个问题,在gridview中希望实现在每一行最后添加一个删除的按钮,但是发现点击每行的button时只会触发button的点击事件,并没有选中这一行,此时调用list.SelectedItem时无法得到对应的绑定数据。

UI.xaml
<ListView x:Name="list" Height="494" Width="1121" FontSize="16" >
<ListView.View>
<GridView x:Name="grideView" >
<GridViewColumn Header="产 品 名 称" Width="Auto" DisplayMemberBinding="{Binding Path=productName}"/>
<GridViewColumn Header="产 品 类 型" Width="Auto" DisplayMemberBinding="{Binding Path=productType}"/>
<GridViewColumn Header="产 品 大 类" Width="Auto" DisplayMemberBinding="{Binding Path=productCategory}" />
<GridViewColumn Header="产 品 规 格" Width="Auto" DisplayMemberBinding="{Binding Path=productSpec}"/>
<GridViewColumn Header="产 品 数 量" Width="Auto" DisplayMemberBinding="{Binding Path=number}"/>
<GridViewColumn Header="价 格" Width="Auto" DisplayMemberBinding="{Binding Path=productMoney}"/>
<GridViewColumn Header="操 作" Width="Auto" > <GridViewColumn.CellTemplate>
<DataTemplate>
<Button x:Name="BtnDelete" Background="{x:Null}" BorderBrush="{x:Null}" Click="BtnDelete_Click" >
<Image Source="/images/error.png" />
</Button>
</DataTemplate> </GridViewColumn.CellTemplate>
</ListView.View>
</ListView>
 
UI.cs
/**
* 删除按钮监听事件
* */
private void BtnDelete_Click(object sender, RoutedEventArgs e)
{
//设置girid的选中元素为Button所在行的元素
list.SelectedItem = ((Button)sender).DataContext;
//在数据集合中删除此元素
mItemsSource.RemoveAt(list.SelectedIndex);
list.Items.Refresh();//刷新listview
}
效果图

技术图片

 

以上是关于WPF ListView点击删除某一行并获取绑定数据的主要内容,如果未能解决你的问题,请参考以下文章

wpf中listview如何通过双击方式获取某一行的信息

C# WPF Listview 如何设置某一行的颜色

WPF的listview的问题。 如何实现鼠标移动到某一行,该行中的button列的button的属性设为Visible(可见)。

WPF中对datagrid删除选中的某一行。

c# listview 如何改变某一行的位置

WPF中如何实现在listview中直接实现编辑功能?