WPF中ListBox的item中有Button或其他控件时点击事件的处理

最近在项目中使用ListBox时遇到了这样的问题:

ListBox中有一个删除按钮,点击后要删除当前项;翻资料后发现可以这样处理:

在Button的点击事件中通过 

var curItem = ((ListBoxItem)video_name.ContainerFromElement((System.Windows.Controls.Button)sender)).Content;

可以拿到当前ListBox的item对象,如果你的ListBox值是绑定的动态集合,那么curItem 可以通过强转为该集合中类的对象,然后通过对象可以拿到绑定的数据;

之后可以通过遍历集合去删除这一项。

如有其它方法,欢迎告知,谢谢啦!

以下是一个简单的 WPF 程序示例,演示如何使用 ListBox 控件: ```xaml <Window x:Class="ListBoxDemo.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="ListBox Demo" Height="300" Width="400"> <Grid> <ListBox x:Name="myListBox" HorizontalAlignment="Left" Margin="10,10,0,10" Width="120"> <ListBoxItem>Item 1</ListBoxItem> <ListBoxItem>Item 2</ListBoxItem> <ListBoxItem>Item 3</ListBoxItem> <ListBoxItem>Item 4</ListBoxItem> </ListBox> <Button Content="Add Item" HorizontalAlignment="Left" Margin="140,10,0,0" VerticalAlignment="Top" Width="75" Click="AddItem_Click"/> <Button Content="Remove Item" HorizontalAlignment="Left" Margin="140,37,0,0" VerticalAlignment="Top" Width="75" Click="RemoveItem_Click"/> </Grid> </Window> ``` 在这个示例,我们创建了一个 ListBox 控件,并添加了四个 ListBoxItem。我们还添加了两个按钮,一个用于添加新项,一个用于删除选定的项。这些按钮的单击事件处理程序将在代码定义。 接下来是代码部分: ```csharp using System.Windows; using System.Windows.Controls; namespace ListBoxDemo { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void AddItem_Click(object sender, RoutedEventArgs e) { // 创建新的ListBoxItem并将其添加到ListBox ListBoxItem newItem = new ListBoxItem(); newItem.Content = "New Item"; myListBox.Items.Add(newItem); } private void RemoveItem_Click(object sender, RoutedEventArgs e) { // 删除选定的项 myListBox.Items.Remove(myListBox.SelectedItem); } } } ``` 在这个代码,我们创建了两个事件处理程序:AddItem_Click 和 RemoveItem_Click。AddItem_Click 创建一个新的 ListBoxItem,并将其添加到 ListBox 。RemoveItem_Click 删除当前选定的项。 以上就是一个简单的 WPF ListBox 示例。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值