ListBox List <T>проблема привязки при удалении элемента - PullRequest
2 голосов
/ 28 февраля 2011

У меня проблемы с элементом управления ListBox, к которому привязан список объектов.

Я вызываю эту функцию каждый раз, когда добавляю или удаляю объект в / из списка:

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

Хорошо работает при добавлении элементов в список или удалении чего-либо, кроме последнего элемента в списке. Если я удалю последний объект в списке, он отобразит в списке типы объектов, а не BarDescription .

BarCollection - это другой класс, который содержит список с объектами Bar, а BarCollection.BarList возвращает именно этот список.

Класс Bar очень прост:

public class Bar
{
   private string _barDescription;

   public string BarDescription
   {
      get
      {
         return _barDescription;
      }
   }

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

Я не могу понять, почему это происходит, у кого-нибудь есть предложения? Любая помощь будет оценена.

Ответы [ 2 ]

2 голосов
/ 28 февраля 2011

Попробуйте использовать BindingList<T> вместо List<T>

0 голосов
/ 05 августа 2013

У меня была такая же проблема, только поместил ToArray () в mylist и решил проблему.

...