Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 列表框列表<;T>;删除项目时的绑定问题_C#_.net 3.5_Compact Framework_Listbox - Fatal编程技术网

C# 列表框列表<;T>;删除项目时的绑定问题

C# 列表框列表<;T>;删除项目时的绑定问题,c#,.net-3.5,compact-framework,listbox,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(); } 在向

我对绑定了对象列表的
ListBox
控件有问题

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

private void RefreshBarList()
{
   lstBar.DataSource = null;
   lstBar.Items.Clear();
   lstBar.DisplayMember = "BarDescription";
   lstBar.DataSource = BarCollection.BarList;
   lstBar.Refresh();
}
在向列表中添加项目或删除列表中除最后一个项目以外的任何内容时,它都可以正常工作。如果删除列表中的最后一个对象,它将在列表框中显示对象类型,而不是b说明

BarCollection是另一个包含带有Bar对象的列表的类,BarCollection.BarList会精确返回该列表

类非常简单:

public class Bar
{
   private string _barDescription;

   public string BarDescription
   {
      get
      {
         return _barDescription;
      }
   }

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

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

尝试使用一个而不是
列表
我也遇到了同样的问题,只是在mylist中放入ToArray()并解决了问题。

您指的是哪种压缩框架?您确定没有将其绑定到其他任何地方吗?如果删除列表中的最后一项,您希望显示什么?列表中没有任何内容,没有属性描述可用的对象。这听起来像是绑定空对象的默认行为,因为只有签名(但没有数据)可用。我不会在其他任何地方绑定它。在添加或从列表中删除项时,都会调用RefreshBarList方法。只有当您删除列表中的最后一个对象时,投标才会出现混乱。@jamietre:列表中可能有6项:-如果删除第4项,效果很好-如果删除第6项(即最后一项),则列表中会显示对象类型,而不是剩余5项的属性描述+1:早在2008年9月,我就在博客上讨论过如何解决这个问题-参见