清除项目</t>时列表框列表<t>绑定问题

时间:2011-02-28 16:27:13

标签: c# .net-3.5 compact-framework listbox

我遇到了ListBox控件的问题,该控件有一个绑定到它的对象列表。

每次我在列表中添加或删除对象时都会调用此函数:

private void RefreshBarList()
{
   lstBar.DataSource = null;
   lstBar.Items.Clear();
   lstBar.DisplayMember = "BarDescription";
   lstBar.DataSource = BarCollection.BarList;
   lstBar.Refresh();
}

在向列表中添加项目或删除列表中的最后一项以外的任何内容时,它都可以正常工作。如果我删除列表中的最后一个对象,它将在列表框中显示对象类型,而不是 BarDescription

BarCollection是另一个包含带有Bar对象的List的类,而BarCollection.BarList则返回该列表。

Bar 类非常简单:

public class Bar
{
   private string _barDescription;

   public string BarDescription
   {
      get
      {
         return _barDescription;
      }
   }

   public Bar(string barDescription)
   {
      _barDescription = barDescription;
   }
}

我无法弄清楚为什么会这样,有人有什么建议吗?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

尝试使用BindingList<T>代替List<T>

答案 1 :(得分:0)

我遇到了同样的问题,只将ToArray()置于mylist中并解决了问题。