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
}
效果圖

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM