IListSource и ToString () с источником данных
-
05-07-2019 - |
Вопрос
Сначала у меня есть Listbox и я установил DataSource в MyObjectCollection
MyObjectCollection реализует интерфейс IListSource, который содержит MyObject's
MyObject имеет метод
public override string ToString()
{
return "test";
}
В окне списка теперь отображается «тест» для каждого элемента в MyObjectCollection.
Но если я применю интерфейс IListSource к MyObject, тоже. В окне списка отображается пустая строка. Как это исправить в " MyObject " учебный класс. Обходной путь должен исправить это в событии Listbox Format, но чем каждый элемент GUI должен реализовать этот обходной путь: /
Решение
Как правило, должны быть списками, или должны быть сущностью для привязки. Если это список ( IList
или IListSource
), то большая часть API привязки данных будет предполагать, что вы действительно хотите (для сценариев простого связывания, то есть одной строки), < em> первый элемент из подсписка.
Я бы просто изменил его так, чтобы MyObject
не реализовывал IListSource
, но инкапсулирует это, возможно выставляя его через свойство Items
. Вы также можете посмотреть, будет ли работать пользовательский TypeConverter
(я исследую ...)