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