【问题标题】:C# removing the current item in a listboxC# 删除列表框中的当前项
【发布时间】:2011-09-11 09:38:37
【问题描述】:

我有一个包含一堆对象的列表,然后将列表的内容添加到列表框控件中。我的问题是,如何删除列表中的当前项目,从而删除列表框中的当前项目?

【问题讨论】:

  • WPF 还是 WinForms?请编辑问题并添加标签
  • @Merlyn 你有没有见过一个菜鸟用户问一个 C# GUI 问题而不说它实际上是 WPF 问题的 WPF?它的winforms!
  • @Nahum:无论你是否正确,Dan 都应该将其添加到他的问题中。

标签: c# list listbox


【解决方案1】:

您可以在 selectedindex_changed 事件处理程序中获取选定的索引,删除该索引处的对象并重新填充列表框

int index = listbox.SelectedIndex();
listThatHoldsObjects.RemoveAt(index); 
listbox.ItemsSource = listThatHoldsObjects

【讨论】:

    【解决方案2】:

    您可以BindingList<object> 将其绑定到列表并将对象列表List<object> 与此BindingList 关联。一旦您从 BindingList 中删除了一个项目,它将同时从 ListListBox 中删除相同的项目

    List<object> list = new List<object>();
    list.Add("test");
    list.Add("test1");
    
    BindingList<object> bindingList;
    bindingList = new BindingList<object>(list);            
    
    listBox1.DataSource = bindingList;
    
    bindingList.Remove("test");
    

    【讨论】:

    • 删除选中的项目更简单... bindingList.Remove(listBox1.SelectedValue);
    【解决方案3】:

    考虑使用BindingList&lt;T&gt; 类(found here)并将其绑定到ListBox

    如果你不想这样,你可以随时使用:

    ListBox lb = new ListBox();
    List<object> list = new List<object>();
    list.RemoveAt(lb.SelectedIndex);
    lb.Items.RemoveAt(lb.SelectedIndex);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 2011-05-21
      • 1970-01-01
      • 2013-04-20
      相关资源
      最近更新 更多