Я пишу приложение Windows и использую элемент управления Listbox. Я разрабатываю Visual Studio C# 2008 Express Edition.Нечетная проблема с ListBox.DataSource
У меня есть объект данных, который выглядит примерно так
public class RootObject
{
public List<SubObject> MySubObjects{ get; set;}
}
У меня есть ListBox на моей форме, а также свойство «MyRootObject», который, очевидно, держит RootObject. Когда элемент управления инициализируется, я установил:
_listBox.DataSource = MyRootObject.MySubObjects;
Теперь, когда форма загружается, отлаживать и видеть, что DataSource в настоящее время установлены правильно. Но ничего не отображается. Я переопределил метод ToString() SubObject, и он даже не вызван. Я попытался установить _listBox.DisplayMember в свойство SubObject, чтобы увидеть, есть ли там какая-то проблема, но все равно ничего. Я пробовал вызывать _listBox.Update() и _listBox.Refresh() после установки DataSource, но до сих пор не люблю. У DataSource есть все данные ... он просто отказывается отображать его.
Так во время отладки, я подумал, WTF, и я решил просто сделать достаточно
_listBox.DataSource = new List<SubObject>{ new SubObject(), new SubObject() };
Конечно, это сработало, и я вижу две вещи, перечисленные в моем ListBox.
Итак, очень любопытно, я решил попробовать скопировать список объектов и положить, что в ListBox, например, так:
_listBox.DataSource = MyRootObject.MySubObjects.ToArray();
Это работает! И это обходное решение моей проблемы на данный момент ... но очень раздражает. Кто-нибудь знает, зачем мне в основном копировать список таких объектов, чтобы заставить его работать, а не просто устанавливать _listBox.DataSource = MyRootObject.MySubObjects; ? Опять же, DataSource имеет все нужные данные в любом случае после его установки ... это просто, когда это скопированные данные, они фактически отображаются, а когда нет, они не отображаются.
У меня эта же проблема, и эта страница говорит, что список ДЕЛАЕТ реализации IList, а также IList : https://social.msdn.microsoft.com/Forums/vstudio/en- US/a58e4f37-4abd-4eff-820e-33d09a7a432d/net-classes-that-implement-ilist? Forum = netfxbcl –