IListSource и ToString () с источником данных - PullRequest
1 голос
/ 10 сентября 2009

Сначала у меня есть Listbox и я установил DataSource в MyObjectCollection

MyObjectCollection реализует интерфейс IListSource, который содержит MyObject's

MyObject имеет метод

public override string ToString()
{
    return "test";
}

В окне списка теперь отображается «тест» для каждого элемента в коллекции MyObjectCollection.

Но если я применю интерфейс IListSource к MyObject, тоже. В окне списка отображается пустая строка. Как это исправить в классе «MyObject». Обходной путь должен исправить это в событии Формат Listbox, но каждый элемент GUI должен реализовать этот обходной путь: /

1 Ответ

1 голос
/ 10 сентября 2009

Обычно вещи должны или быть списками, или должны быть объектом для привязки. Если это список (IList или IListSource), то большая часть API привязки данных будет предполагать, что вы действительно хотите (для сценариев простого связывания, то есть одной строки) элемент first из подсписка .

Я бы просто изменил его так, чтобы MyObject не реализовывал IListSource, но инкапсулирует его, возможно выставляя его через свойство Items. Вы также можете посмотреть, будет ли работать пользовательский TypeConverter (я исследую ...)

...