gpt4 book ai didi

wpf - 从 WPF 中的 ListBox 中删除项目?

转载 作者:行者123 更新时间:2023-12-04 16:30:26 27 4
gpt4 key购买 nike

我正在尝试从数据绑定(bind)的列表框中删除项目。
这是列表框的屏幕截图。

alt text

这是在列表中添加项目的代码。

    public class Task
{
public string Taskname { get; set; }

public Task(string taskname)
{
this.Taskname = taskname;
}
}

public void GetTask()
{
taskList = new List<Task>
{
new Task("Task1"),
new Task("Task2"),
new Task("Task3"),
new Task("Task4")
};

lstBxTask.ItemsSource = taskList;
}

这是 Xaml 代码,
 <ListBox x:Name="lstBxTask" Style="{StaticResource ListBoxItems}" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Taskname}" Style="{StaticResource TextInListBox}"/>
<Button Name="btnDelete" Style="{StaticResource DeleteButton}" Click="btnDelete_Click">
</Button>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

Whenever item in a listbox is selected, delete (x) button is displayed.单击时,它应该从列表框中删除该项目。谁能告诉我我该怎么做?

最佳答案

好的,这就是我所做的。 Observablecollection 就像魅力一样。

private ObservableCollection<Task> taskList;

public void GetTask()
{
taskList = new ObservableCollection<Task>
{
new Task("Task1"),
new Task("Task2"),
new Task("Task3"),
new Task("Task4")
};

lstBxTask.ItemsSource = taskList;
}

private void btnDelete_Click(object sender, RoutedEventArgs e)
{
var button = sender as Button;
if (button != null)
{
var task = button.DataContext as Task;

((ObservableCollection<Task>) lstBxTask.ItemsSource).Remove(task);
}
else
{
return;
}
}

关于wpf - 从 WPF 中的 ListBox 中删除项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2898204/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com