我在将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;
   }
}


我不知道为什么会这样,有人有什么建议吗?任何帮助将不胜感激。

最佳答案

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

10-07 22:13